Skip to content

Commit ff6fac5

Browse files
committed
Update to Awaited<T>
1 parent 9b0a55a commit ff6fac5

File tree

78 files changed

+526
-531
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+526
-531
lines changed

src/lib/es2015.promise.d.ts

+9-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ interface PromiseConstructor {
2121
all<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>;
2222

2323
// see: lib.es2015.iterable.d.ts
24-
// all<T>(values: Iterable<T | PromiseLike<T>>): Promise<T[]>;
24+
// all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;
2525

2626
/**
2727
* Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
@@ -32,7 +32,7 @@ interface PromiseConstructor {
3232
race<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;
3333

3434
// see: lib.es2015.iterable.d.ts
35-
// race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>;
35+
// race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;
3636

3737
/**
3838
* Creates a new rejected promise for the provided reason.
@@ -46,13 +46,18 @@ interface PromiseConstructor {
4646
* @returns A resolved promise.
4747
*/
4848
resolve(): Promise<void>;
49-
5049
/**
5150
* Creates a new resolved promise for the provided value.
5251
* @param value A promise.
5352
* @returns A promise whose internal state matches the provided promise.
5453
*/
55-
resolve<T>(value: T): Promise<T extends PromiseLike<infer U> ? U : T>;
54+
resolve<T>(value: T): Promise<Awaited<T>>;
55+
/**
56+
* Creates a new resolved promise for the provided value.
57+
* @param value A promise.
58+
* @returns A promise whose internal state matches the provided promise.
59+
*/
60+
resolve<T>(value: T | PromiseLike<T>): Promise<Awaited<T>>;
5661
}
5762

5863
declare var Promise: PromiseConstructor;

tests/baselines/reference/asyncArrowFunction11_es5.symbols

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ class A {
88
>args : Symbol(args, Decl(asyncArrowFunction11_es5.ts, 2, 15))
99

1010
await Promise.resolve();
11-
>Promise.resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
11+
>Promise.resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
1212
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --))
13-
>resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
13+
>resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
1414

1515
const obj = { ["a"]: () => this }; // computed property name after `await` triggers case
1616
>obj : Symbol(obj, Decl(asyncArrowFunction11_es5.ts, 4, 13))

tests/baselines/reference/asyncArrowFunction11_es5.types

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ class A {
1111
await Promise.resolve();
1212
>await Promise.resolve() : void
1313
>Promise.resolve() : Promise<void>
14-
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<T extends PromiseLike<infer U> ? U : T>; }
14+
>Promise.resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
1515
>Promise : PromiseConstructor
16-
>resolve : { (): Promise<void>; <T>(value: T): Promise<T extends PromiseLike<infer U> ? U : T>; }
16+
>resolve : { (): Promise<void>; <T>(value: T): Promise<Awaited<T>>; <T>(value: T | PromiseLike<T>): Promise<Awaited<T>>; }
1717

1818
const obj = { ["a"]: () => this }; // computed property name after `await` triggers case
1919
>obj : { a: () => this; }

tests/baselines/reference/asyncArrowFunction9_es2017.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ tests/cases/conformance/async/es2017/asyncArrowFunction/asyncArrowFunction9_es20
1616
!!! error TS1005: ',' expected.
1717
~~~~~~~
1818
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'.
19-
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:78:13: 'Promise' was also declared here.
19+
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:83:13: 'Promise' was also declared here.
2020
~
2121
!!! error TS1005: ',' expected.
2222
~~

tests/baselines/reference/asyncArrowFunction9_es5.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ tests/cases/conformance/async/es5/asyncArrowFunction/asyncArrowFunction9_es5.ts(
1616
!!! error TS1005: ',' expected.
1717
~~~~~~~
1818
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'.
19-
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:78:13: 'Promise' was also declared here.
19+
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:83:13: 'Promise' was also declared here.
2020
~
2121
!!! error TS1005: ',' expected.
2222
~~

tests/baselines/reference/asyncArrowFunction9_es6.errors.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ tests/cases/conformance/async/es6/asyncArrowFunction/asyncArrowFunction9_es6.ts(
1616
!!! error TS1005: ',' expected.
1717
~~~~~~~
1818
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'Promise' must be of type 'PromiseConstructor', but here has type 'any'.
19-
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:78:13: 'Promise' was also declared here.
19+
!!! related TS6203 /.ts/lib.es2015.promise.d.ts:83:13: 'Promise' was also declared here.
2020
~
2121
!!! error TS1005: ',' expected.
2222
~~

tests/baselines/reference/asyncFunctionReturnType.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ async function fGenericIndexedTypeForKProp<TObj extends Obj, K extends keyof TOb
6767
return obj[key];
6868
}
6969

70-
async function fGenericIndexedTypeForPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K] extends PromiseLike<infer U> ? U : TObj[K]> {
70+
async function fGenericIndexedTypeForPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K]> {
7171
return Promise.resolve(obj[key]);
7272
}
7373

74-
async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K] extends PromiseLike<infer U> ? U : TObj[K]> {
74+
async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K]> {
7575
return Promise.resolve<TObj[K]>(obj[key]);
7676
}
7777

0 commit comments

Comments
 (0)