File: propertyAccessChain.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (109 lines) | stat: -rw-r--r-- 3,487 bytes parent folder | download | duplicates (4)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
=== tests/cases/conformance/expressions/optionalChaining/propertyAccessChain/propertyAccessChain.ts ===
declare const o1: undefined | { b: string };
>o1 : { b: string; } | undefined
>b : string

o1?.b;
>o1?.b : string | undefined
>o1 : { b: string; } | undefined
>b : string | undefined

declare const o2: undefined | { b: { c: string } };
>o2 : { b: {    c: string;}; } | undefined
>b : { c: string; }
>c : string

o2?.b.c;
>o2?.b.c : string | undefined
>o2?.b : { c: string; } | undefined
>o2 : { b: { c: string; }; } | undefined
>b : { c: string; } | undefined
>c : string | undefined

declare const o3: { b: undefined | { c: string } };
>o3 : { b: undefined | {    c: string;}; }
>b : { c: string; } | undefined
>c : string

o3.b?.c;
>o3.b?.c : string | undefined
>o3.b : { c: string; } | undefined
>o3 : { b: { c: string; } | undefined; }
>b : { c: string; } | undefined
>c : string | undefined

declare const o4: { b?: { c: { d?: { e: string } } } };
>o4 : { b?: { c: {    d?: {        e: string;    };}; } | undefined; }
>b : { c: {    d?: {        e: string;    };}; } | undefined
>c : { d?: { e: string; } | undefined; }
>d : { e: string; } | undefined
>e : string

o4.b?.c.d?.e;
>o4.b?.c.d?.e : string | undefined
>o4.b?.c.d : { e: string; } | undefined
>o4.b?.c : { d?: { e: string; } | undefined; } | undefined
>o4.b : { c: { d?: { e: string; } | undefined; }; } | undefined
>o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
>c : { d?: { e: string; } | undefined; } | undefined
>d : { e: string; } | undefined
>e : string | undefined

declare const o5: { b?(): { c: { d?: { e: string } } } };
>o5 : { b?(): {    c: {        d?: {            e: string;        };    };}; }
>b : (() => {    c: {        d?: {            e: string;        };    };}) | undefined
>c : { d?: { e: string; } | undefined; }
>d : { e: string; } | undefined
>e : string

o5.b?.().c.d?.e;
>o5.b?.().c.d?.e : string | undefined
>o5.b?.().c.d : { e: string; } | undefined
>o5.b?.().c : { d?: { e: string; } | undefined; } | undefined
>o5.b?.() : { c: { d?: { e: string; } | undefined; }; } | undefined
>o5.b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
>o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; }
>b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
>c : { d?: { e: string; } | undefined; } | undefined
>d : { e: string; } | undefined
>e : string | undefined

// GH#33744
declare const o6: <T>() => undefined | ({ x: number });
>o6 : <T>() => undefined | ({    x: number;})
>x : number

o6<number>()?.x;
>o6<number>()?.x : number | undefined
>o6<number>() : { x: number; } | undefined
>o6 : <T>() => { x: number; } | undefined
>x : number | undefined

// GH#34109
o1?.b ? 1 : 0;
>o1?.b ? 1 : 0 : 0 | 1
>o1?.b : string | undefined
>o1 : { b: string; } | undefined
>b : string | undefined
>1 : 1
>0 : 0

// GH#36031
o2?.b!.c;
>o2?.b!.c : string | undefined
>o2?.b! : { c: string; } | undefined
>o2?.b : { c: string; } | undefined
>o2 : { b: { c: string; }; } | undefined
>b : { c: string; } | undefined
>c : string | undefined

o2?.b!.c!;
>o2?.b!.c! : string
>o2?.b!.c : string | undefined
>o2?.b! : { c: string; } | undefined
>o2?.b : { c: string; } | undefined
>o2 : { b: { c: string; }; } | undefined
>b : { c: string; } | undefined
>c : string | undefined