TypeScript/tests/baselines/reference/callChainInference.types
Anders Hejlsberg 412ecbc291
Reduce void | undefined only in conjunction with subtype reduction (#42846)
* Reduce void | undefined only in conjunction with subtype reduction

* Accept new baselines

* Add regression test
2021-02-17 14:48:07 -10:00

38 lines
798 B
Plaintext

=== tests/cases/conformance/expressions/optionalChaining/callChain/callChainInference.ts ===
// Repro from #42404
interface Y {
foo<T>(this: T, arg: keyof T): void;
>foo : <T>(this: T, arg: keyof T) => void
>this : T
>arg : keyof T
a: number;
>a : number
b: string;
>b : string
}
declare const value: Y | undefined;
>value : Y | undefined
if (value) {
>value : Y | undefined
value?.foo("a");
>value?.foo("a") : void
>value?.foo : <T>(this: T, arg: keyof T) => void
>value : Y
>foo : <T>(this: T, arg: keyof T) => void
>"a" : "a"
}
value?.foo("a");
>value?.foo("a") : void | undefined
>value?.foo : (<T>(this: T, arg: keyof T) => void) | undefined
>value : Y | undefined
>foo : (<T>(this: T, arg: keyof T) => void) | undefined
>"a" : "a"