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/unionReductionMutualSubtypes.ts ===
// Repro from #35414
interface ReturnVal {
something(): void;
>something : () => void
}
const k: ReturnVal = { something() { } }
>k : ReturnVal
>{ something() { } } : { something(): void; }
>something : () => void
declare const val: ReturnVal;
>val : ReturnVal
function run(options: { something?(b?: string): void }) {
>run : (options: { something?(b?: string): void; }) => void
>options : { something?(b?: string): void; }
>something : ((b?: string) => void) | undefined
>b : string | undefined
const something = options.something ?? val.something;
>something : (b?: string | undefined) => void
>options.something ?? val.something : (b?: string | undefined) => void
>options.something : ((b?: string | undefined) => void) | undefined
>options : { something?(b?: string | undefined): void; }
>something : ((b?: string | undefined) => void) | undefined
>val.something : () => void
>val : ReturnVal
>something : () => void
something('');
>something('') : void
>something : (b?: string | undefined) => void
>'' : ""
}
|