-
Notifications
You must be signed in to change notification settings - Fork 12.8k
/
Copy pathunionBinaryExpressionPreserveOrigin1.types
81 lines (67 loc) · 1.93 KB
/
unionBinaryExpressionPreserveOrigin1.types
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//// [tests/cases/compiler/unionBinaryExpressionPreserveOrigin1.ts] ////
=== unionBinaryExpressionPreserveOrigin1.ts ===
// https://github.com/microsoft/TypeScript/issues/43031
type Brand<K, T> = K & { __brand: T };
>Brand : Brand<K, T>
> : ^^^^^^^^^^^
>__brand : T
> : ^
type BrandedUnknown<T> = Brand<"unknown", T>;
>BrandedUnknown : BrandedUnknown<T>
> : ^^^^^^^^^^^^^^^^^
type Maybe<T> = T | BrandedUnknown<T>;
>Maybe : Maybe<T>
> : ^^^^^^^^
declare const m1: Maybe<boolean> | undefined;
>m1 : Maybe<boolean> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
const test1 = m1 || false;
>test1 : Maybe<boolean>
> : ^^^^^^^^^^^^^^
>m1 || false : Maybe<boolean>
> : ^^^^^^^^^^^^^^
>m1 : Maybe<boolean> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
>false : false
> : ^^^^^
const test2 = m1 ?? false;
>test2 : Maybe<boolean>
> : ^^^^^^^^^^^^^^
>m1 ?? false : Maybe<boolean>
> : ^^^^^^^^^^^^^^
>m1 : Maybe<boolean> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^
>false : false
> : ^^^^^
declare const m2: Maybe<null> | undefined;
>m2 : Maybe<null> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^
const test3 = m2 || null;
>test3 : Maybe<null>
> : ^^^^^^^^^^^
>m2 || null : Maybe<null>
> : ^^^^^^^^^^^
>m2 : Maybe<null> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^
const test4 = m2 ?? null;
>test4 : Maybe<null>
> : ^^^^^^^^^^^
>m2 ?? null : Maybe<null>
> : ^^^^^^^^^^^
>m2 : Maybe<null> | undefined
> : ^^^^^^^^^^^^^^^^^^^^^^^
type StrOrNum = string | number
>StrOrNum : StrOrNum
> : ^^^^^^^^
declare const numOrStr: StrOrNum;
>numOrStr : StrOrNum
> : ^^^^^^^^
const test5 = numOrStr && numOrStr;
>test5 : StrOrNum
> : ^^^^^^^^
>numOrStr && numOrStr : StrOrNum
> : ^^^^^^^^
>numOrStr : StrOrNum
> : ^^^^^^^^
>numOrStr : StrOrNum
> : ^^^^^^^^