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
|
=== tests/cases/conformance/types/union/discriminatedUnionTypes3.ts ===
// Repro from #44435
type Correct = {
>Correct : { code: string; property: true; err: undefined; }
code: string
>code : string
property: true
>property : true
>true : true
err: undefined
>err : undefined
}
type Err = {
>Err : { err: `${string} is wrong!`; }
err: `${string} is wrong!`
>err : `${string} is wrong!`
}
type SomeReturnType = Correct | Err;
>SomeReturnType : Correct | Err
const example: SomeReturnType = {} as SomeReturnType;
>example : SomeReturnType
>{} as SomeReturnType : SomeReturnType
>{} : {}
if (example.err === undefined) {
>example.err === undefined : boolean
>example.err : `${string} is wrong!` | undefined
>example : SomeReturnType
>err : `${string} is wrong!` | undefined
>undefined : undefined
example.property; // true
>example.property : true
>example : Correct
>property : true
}
|