File: typeGuardNarrowsIndexedAccessOfKnownProperty3.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (38 lines) | stat: -rw-r--r-- 932 bytes parent folder | download | duplicates (3)
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
38
=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts ===
type Foo = (number | undefined)[] | undefined;
>Foo : (number | undefined)[] | undefined

const foo: Foo = [1, 2, 3];
>foo : Foo
>[1, 2, 3] : number[]
>1 : 1
>2 : 2
>3 : 3

const index = 1;
>index : 1
>1 : 1

if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) {
>foo !== undefined && foo[index] !== undefined && foo[index] >= 0 : boolean
>foo !== undefined && foo[index] !== undefined : boolean
>foo !== undefined : boolean
>foo : (number | undefined)[]
>undefined : undefined
>foo[index] !== undefined : boolean
>foo[index] : number | undefined
>foo : (number | undefined)[]
>index : 1
>undefined : undefined
>foo[index] >= 0 : boolean
>foo[index] : number
>foo : (number | undefined)[]
>index : 1
>0 : 0

    foo[index] // number
>foo[index] : number
>foo : (number | undefined)[]
>index : 1
}