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
|