Skip to content

Commit 73a98ae

Browse files
authored
Add tests for Awaited<null> and Awaited<undefined> (#52960)
1 parent 1b692de commit 73a98ae

10 files changed

+317
-247
lines changed

tests/baselines/reference/awaitedType.errors.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
tests/cases/compiler/awaitedType.ts(18,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
21
tests/cases/compiler/awaitedType.ts(22,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
2+
tests/cases/compiler/awaitedType.ts(26,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
33

44

55
==== tests/cases/compiler/awaitedType.ts (2 errors) ====
@@ -19,6 +19,10 @@ tests/cases/compiler/awaitedType.ts(22,12): error TS2589: Type instantiation is
1919
type T14 = _Expect<Awaited<Promise<Promise<number>> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful
2020
type T15 = _Expect<Awaited<Promise<Promise<number>> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful
2121

22+
type TUndefined = Awaited<undefined>;
23+
type TNull = Awaited<null>;
24+
type TNullOrUndefined = Awaited<null | undefined>;
25+
2226
interface BadPromise { then(cb: (value: BadPromise) => void): void; }
2327
type T16 = Awaited<BadPromise>; // error
2428
~~~~~~~~~~~~~~~~~~~

tests/baselines/reference/awaitedType.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ type T13 = _Expect<Awaited<Promise<Promise<number>> | string | null>, /*expected
1515
type T14 = _Expect<Awaited<Promise<Promise<number>> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful
1616
type T15 = _Expect<Awaited<Promise<Promise<number>> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful
1717

18+
type TUndefined = Awaited<undefined>;
19+
type TNull = Awaited<null>;
20+
type TNullOrUndefined = Awaited<null | undefined>;
21+
1822
interface BadPromise { then(cb: (value: BadPromise) => void): void; }
1923
type T16 = Awaited<BadPromise>; // error
2024

tests/baselines/reference/awaitedType.symbols

Lines changed: 180 additions & 168 deletions
Large diffs are not rendered by default.

tests/baselines/reference/awaitedType.types

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,17 @@ type T15 = _Expect<Awaited<Promise<Promise<number>> | string | null | undefined>
5454
>null : null
5555
>null : null
5656

57+
type TUndefined = Awaited<undefined>;
58+
>TUndefined : undefined
59+
60+
type TNull = Awaited<null>;
61+
>TNull : null
62+
>null : null
63+
64+
type TNullOrUndefined = Awaited<null | undefined>;
65+
>TNullOrUndefined : null
66+
>null : null
67+
5768
interface BadPromise { then(cb: (value: BadPromise) => void): void; }
5869
>then : (cb: (value: BadPromise) => void) => void
5970
>cb : (value: BadPromise) => void

tests/baselines/reference/awaitedTypeStrictNull.errors.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
tests/cases/compiler/awaitedTypeStrictNull.ts(18,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
21
tests/cases/compiler/awaitedTypeStrictNull.ts(22,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
2+
tests/cases/compiler/awaitedTypeStrictNull.ts(26,12): error TS2589: Type instantiation is excessively deep and possibly infinite.
33

44

55
==== tests/cases/compiler/awaitedTypeStrictNull.ts (2 errors) ====
@@ -19,6 +19,10 @@ tests/cases/compiler/awaitedTypeStrictNull.ts(22,12): error TS2589: Type instant
1919
type T14 = _Expect<Awaited<Promise<Promise<number>> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful
2020
type T15 = _Expect<Awaited<Promise<Promise<number>> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful
2121

22+
type TUndefined = Awaited<undefined>;
23+
type TNull = Awaited<null>;
24+
type TNullOrUndefined = Awaited<null | undefined>;
25+
2226
interface BadPromise { then(cb: (value: BadPromise) => void): void; }
2327
type T16 = Awaited<BadPromise>; // error
2428
~~~~~~~~~~~~~~~~~~~

tests/baselines/reference/awaitedTypeStrictNull.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ type T13 = _Expect<Awaited<Promise<Promise<number>> | string | null>, /*expected
1515
type T14 = _Expect<Awaited<Promise<Promise<number>> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful
1616
type T15 = _Expect<Awaited<Promise<Promise<number>> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful
1717

18+
type TUndefined = Awaited<undefined>;
19+
type TNull = Awaited<null>;
20+
type TNullOrUndefined = Awaited<null | undefined>;
21+
1822
interface BadPromise { then(cb: (value: BadPromise) => void): void; }
1923
type T16 = Awaited<BadPromise>; // error
2024

0 commit comments

Comments
 (0)