Skip to content

Commit c7b2942

Browse files
committed
Add regression test
1 parent 97bfeab commit c7b2942

File tree

4 files changed

+74
-0
lines changed

4 files changed

+74
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//// [emptyObjectNarrowing.ts]
2+
// Repro from #49988
3+
4+
declare function isObject(value: unknown): value is Record<string, unknown>;
5+
const obj = {};
6+
if (isObject(obj)) {
7+
obj['attr'];
8+
}
9+
10+
11+
//// [emptyObjectNarrowing.js]
12+
"use strict";
13+
// Repro from #49988
14+
var obj = {};
15+
if (isObject(obj)) {
16+
obj['attr'];
17+
}
18+
19+
20+
//// [emptyObjectNarrowing.d.ts]
21+
declare function isObject(value: unknown): value is Record<string, unknown>;
22+
declare const obj: {};
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
=== tests/cases/compiler/emptyObjectNarrowing.ts ===
2+
// Repro from #49988
3+
4+
declare function isObject(value: unknown): value is Record<string, unknown>;
5+
>isObject : Symbol(isObject, Decl(emptyObjectNarrowing.ts, 0, 0))
6+
>value : Symbol(value, Decl(emptyObjectNarrowing.ts, 2, 26))
7+
>value : Symbol(value, Decl(emptyObjectNarrowing.ts, 2, 26))
8+
>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
9+
10+
const obj = {};
11+
>obj : Symbol(obj, Decl(emptyObjectNarrowing.ts, 3, 5))
12+
13+
if (isObject(obj)) {
14+
>isObject : Symbol(isObject, Decl(emptyObjectNarrowing.ts, 0, 0))
15+
>obj : Symbol(obj, Decl(emptyObjectNarrowing.ts, 3, 5))
16+
17+
obj['attr'];
18+
>obj : Symbol(obj, Decl(emptyObjectNarrowing.ts, 3, 5))
19+
}
20+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/compiler/emptyObjectNarrowing.ts ===
2+
// Repro from #49988
3+
4+
declare function isObject(value: unknown): value is Record<string, unknown>;
5+
>isObject : (value: unknown) => value is Record<string, unknown>
6+
>value : unknown
7+
8+
const obj = {};
9+
>obj : {}
10+
>{} : {}
11+
12+
if (isObject(obj)) {
13+
>isObject(obj) : boolean
14+
>isObject : (value: unknown) => value is Record<string, unknown>
15+
>obj : {}
16+
17+
obj['attr'];
18+
>obj['attr'] : unknown
19+
>obj : Record<string, unknown>
20+
>'attr' : "attr"
21+
}
22+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// @strict: true
2+
// @declaration: true
3+
4+
// Repro from #49988
5+
6+
declare function isObject(value: unknown): value is Record<string, unknown>;
7+
const obj = {};
8+
if (isObject(obj)) {
9+
obj['attr'];
10+
}

0 commit comments

Comments
 (0)