1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty12.ts ===
enum E {
>E : E
A = "A",
>A : E.A
>"A" : "A"
B = "B"
>B : E.B
>"B" : "B"
}
declare const m: { [K in E]: string | null };
>m : { A: string | null; B: string | null; }
>null : null
if (m[E.A] !== null) {
>m[E.A] !== null : boolean
>m[E.A] : string | null
>m : { A: string | null; B: string | null; }
>E.A : E.A
>E : typeof E
>A : E.A
>null : null
m[E.A].toString(); // string
>m[E.A].toString() : string
>m[E.A].toString : () => string
>m[E.A] : string
>m : { A: string | null; B: string | null; }
>E.A : E.A
>E : typeof E
>A : E.A
>toString : () => string
}
|