File: discriminatedUnionTypes3.types

package info (click to toggle)
node-typescript 4.9.5%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 533,908 kB
  • sloc: javascript: 2,018,330; makefile: 7; sh: 1
file content (42 lines) | stat: -rw-r--r-- 939 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
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
}