File: optionalChainingInTypeAssertions%28target%3Des2015%29.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 (82 lines) | stat: -rw-r--r-- 1,653 bytes parent folder | download | duplicates (6)
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
=== tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts ===
class Foo {
>Foo : Foo

    m() {}
>m : () => void
}

const foo = new Foo();
>foo : Foo
>new Foo() : Foo
>Foo : typeof Foo

(foo.m as any)?.();
>(foo.m as any)?.() : any
>(foo.m as any) : any
>foo.m as any : any
>foo.m : () => void
>foo : Foo
>m : () => void

(<any>foo.m)?.();
>(<any>foo.m)?.() : any
>(<any>foo.m) : any
><any>foo.m : any
>foo.m : () => void
>foo : Foo
>m : () => void

/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.();
>(/*a2*/foo.m as any/*a3*/)/*a4*/?.() : any
>(/*a2*/foo.m as any/*a3*/) : any
>foo.m as any : any
>foo.m : () => void
>foo : Foo
>m : () => void

/*b1*/(/*b2*/<any>foo.m/*b3*/)/*b4*/?.();
>(/*b2*/<any>foo.m/*b3*/)/*b4*/?.() : any
>(/*b2*/<any>foo.m/*b3*/) : any
><any>foo.m : any
>foo.m : () => void
>foo : Foo
>m : () => void

// https://github.com/microsoft/TypeScript/issues/50148
(foo?.m as any).length;
>(foo?.m as any).length : any
>(foo?.m as any) : any
>foo?.m as any : any
>foo?.m : () => void
>foo : Foo
>m : () => void
>length : any

(<any>foo?.m).length;
>(<any>foo?.m).length : any
>(<any>foo?.m) : any
><any>foo?.m : any
>foo?.m : () => void
>foo : Foo
>m : () => void
>length : any

(foo?.["m"] as any).length;
>(foo?.["m"] as any).length : any
>(foo?.["m"] as any) : any
>foo?.["m"] as any : any
>foo?.["m"] : () => void
>foo : Foo
>"m" : "m"
>length : any

(<any>foo?.["m"]).length;
>(<any>foo?.["m"]).length : any
>(<any>foo?.["m"]) : any
><any>foo?.["m"] : any
>foo?.["m"] : () => void
>foo : Foo
>"m" : "m"
>length : any