Skip to content

Commit a6eb610

Browse files
committed
add additional tests
1 parent 0371187 commit a6eb610

4 files changed

+103
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//// [typeGuardNarrowsIndexedAccessOfKnownProperty10.ts]
2+
enum E {
3+
A = "A",
4+
B = "B"
5+
}
6+
7+
declare const m: { [K in E]: string | null };
8+
9+
if (m[E.A] !== null) {
10+
m[E.A].toString(); // string
11+
}
12+
13+
14+
//// [typeGuardNarrowsIndexedAccessOfKnownProperty10.js]
15+
"use strict";
16+
var E;
17+
(function (E) {
18+
E["A"] = "A";
19+
E["B"] = "B";
20+
})(E || (E = {}));
21+
if (m[E.A] !== null) {
22+
m[E.A].toString(); // string
23+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty10.ts ===
2+
enum E {
3+
>E : Symbol(E, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 0))
4+
5+
A = "A",
6+
>A : Symbol(E.A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 8))
7+
8+
B = "B"
9+
>B : Symbol(E.B, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 1, 12))
10+
}
11+
12+
declare const m: { [K in E]: string | null };
13+
>m : Symbol(m, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 5, 13))
14+
>K : Symbol(K, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 5, 20))
15+
>E : Symbol(E, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 0))
16+
17+
if (m[E.A] !== null) {
18+
>m : Symbol(m, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 5, 13))
19+
>E.A : Symbol(E.A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 8))
20+
>E : Symbol(E, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 0))
21+
>A : Symbol(E.A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 8))
22+
23+
m[E.A].toString(); // string
24+
>m[E.A].toString : Symbol(String.toString, Decl(lib.es5.d.ts, --, --))
25+
>m : Symbol(m, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 5, 13))
26+
>E.A : Symbol(E.A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 8))
27+
>E : Symbol(E, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 0))
28+
>A : Symbol(E.A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty10.ts, 0, 8))
29+
>toString : Symbol(String.toString, Decl(lib.es5.d.ts, --, --))
30+
}
31+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty10.ts ===
2+
enum E {
3+
>E : E
4+
5+
A = "A",
6+
>A : E.A
7+
>"A" : "A"
8+
9+
B = "B"
10+
>B : E.B
11+
>"B" : "B"
12+
}
13+
14+
declare const m: { [K in E]: string | null };
15+
>m : { A: string | null; B: string | null; }
16+
>null : null
17+
18+
if (m[E.A] !== null) {
19+
>m[E.A] !== null : boolean
20+
>m[E.A] : string | null
21+
>m : { A: string | null; B: string | null; }
22+
>E.A : E.A
23+
>E : typeof E
24+
>A : E.A
25+
>null : null
26+
27+
m[E.A].toString(); // string
28+
>m[E.A].toString() : string
29+
>m[E.A].toString : () => string
30+
>m[E.A] : string
31+
>m : { A: string | null; B: string | null; }
32+
>E.A : E.A
33+
>E : typeof E
34+
>A : E.A
35+
>toString : () => string
36+
}
37+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// @strict: true
2+
3+
enum E {
4+
A = "A",
5+
B = "B"
6+
}
7+
8+
declare const m: { [K in E]: string | null };
9+
10+
if (m[E.A] !== null) {
11+
m[E.A].toString(); // string
12+
}

0 commit comments

Comments
 (0)