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
|
=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts ===
const foo: { key?: number } = {};
>foo : { key?: number | undefined; }
>key : number | undefined
>{} : {}
const key = 'key' as const;
>key : "key"
>'key' as const : "key"
>'key' : "key"
if (foo[key]) {
>foo[key] : number | undefined
>foo : { key?: number | undefined; }
>key : "key"
foo[key]; // number
>foo[key] : number
>foo : { key?: number | undefined; }
>key : "key"
foo.key; // number
>foo.key : number
>foo : { key?: number | undefined; }
>key : number
}
|