File: unionReductionMutualSubtypes.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 (38 lines) | stat: -rw-r--r-- 1,133 bytes parent folder | download | duplicates (3)
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
>'' : ""
}