@@ -60,21 +60,21 @@ type T12 = Awaited<Promise<Promise<number>>>;
60
60
61
61
type T13 = _Expect<Awaited<Promise<Promise<number>> | string | null>, /*expected*/ string | number | null>; // otherwise just prints T13 in types tests, which isn't very helpful
62
62
>T13 : Symbol(T13, Decl(awaitedTypeStrictNull.ts, 11, 45))
63
- >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54 , 1))
63
+ >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57 , 1))
64
64
>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
65
65
>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, --, --))
66
66
>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, --, --))
67
67
68
68
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
69
69
>T14 : Symbol(T14, Decl(awaitedTypeStrictNull.ts, 12, 107))
70
- >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54 , 1))
70
+ >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57 , 1))
71
71
>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
72
72
>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, --, --))
73
73
>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, --, --))
74
74
75
75
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
76
76
>T15 : Symbol(T15, Decl(awaitedTypeStrictNull.ts, 13, 117))
77
- >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54 , 1))
77
+ >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57 , 1))
78
78
>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
79
79
>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, --, --))
80
80
>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, --, --))
@@ -110,111 +110,120 @@ type T17 = Awaited<BadPromise1>; // error
110
110
>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
111
111
>BadPromise1 : Symbol(BadPromise1, Decl(awaitedTypeStrictNull.ts, 17, 31))
112
112
113
+ // https://github.com/microsoft/TypeScript/issues/46934
114
+ type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number
115
+ >T18 : Symbol(T18, Decl(awaitedTypeStrictNull.ts, 21, 32))
116
+ >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
117
+ >then : Symbol(then, Decl(awaitedTypeStrictNull.ts, 24, 20))
118
+ >cb : Symbol(cb, Decl(awaitedTypeStrictNull.ts, 24, 26))
119
+ >value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 24, 31))
120
+ >other : Symbol(other, Decl(awaitedTypeStrictNull.ts, 24, 45))
121
+
113
122
// https://github.com/microsoft/TypeScript/issues/33562
114
123
type MaybePromise<T> = T | Promise<T> | PromiseLike<T>
115
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
116
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24 , 18))
117
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24 , 18))
124
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
125
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27 , 18))
126
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27 , 18))
118
127
>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, --, --))
119
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24 , 18))
128
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27 , 18))
120
129
>PromiseLike : Symbol(PromiseLike, Decl(lib.es5.d.ts, --, --))
121
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24 , 18))
130
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27 , 18))
122
131
123
132
declare function MaybePromise<T>(value: T): MaybePromise<T>;
124
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
125
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25 , 30))
126
- >value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 25 , 33))
127
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25 , 30))
128
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
129
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25 , 30))
133
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
134
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28 , 30))
135
+ >value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 28 , 33))
136
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28 , 30))
137
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
138
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28 , 30))
130
139
131
140
async function main() {
132
- >main : Symbol(main, Decl(awaitedTypeStrictNull.ts, 25 , 60))
141
+ >main : Symbol(main, Decl(awaitedTypeStrictNull.ts, 28 , 60))
133
142
134
143
let aaa: number;
135
- >aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 28 , 7))
144
+ >aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 31 , 7))
136
145
137
146
let bbb: string;
138
- >bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 29 , 7))
147
+ >bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 32 , 7))
139
148
140
149
[
141
150
aaa,
142
- >aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 28 , 7))
151
+ >aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 31 , 7))
143
152
144
153
bbb,
145
- >bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 29 , 7))
154
+ >bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 32 , 7))
146
155
147
156
] = await Promise.all([
148
157
>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
149
158
>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, --, --))
150
159
>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
151
160
152
161
MaybePromise(1),
153
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
162
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
154
163
155
164
MaybePromise('2'),
156
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
165
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
157
166
158
167
MaybePromise(true),
159
- >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24 , 54), Decl(awaitedTypeStrictNull.ts, 21, 32 ))
168
+ >MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27 , 54), Decl(awaitedTypeStrictNull.ts, 24, 69 ))
160
169
161
170
])
162
171
}
163
172
164
173
// https://github.com/microsoft/TypeScript/issues/45924
165
174
class Api<D = {}> {
166
- >Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38 , 1))
167
- >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 41 , 10))
175
+ >Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41 , 1))
176
+ >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44 , 10))
168
177
169
178
// Should result in `Promise<T>` instead of `Promise<Awaited<T>>`.
170
179
async post<T = D>() { return this.request<T>(); }
171
- >post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41 , 19))
172
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 43 , 12))
173
- >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 41 , 10))
174
- >this.request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43 , 50))
175
- >this : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38 , 1))
176
- >request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43 , 50))
177
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 43 , 12))
180
+ >post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44 , 19))
181
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 46 , 12))
182
+ >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44 , 10))
183
+ >this.request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46 , 50))
184
+ >this : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41 , 1))
185
+ >request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46 , 50))
186
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 46 , 12))
178
187
179
188
async request<D>(): Promise<D> { throw new Error(); }
180
- >request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43 , 50))
181
- >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44 , 15))
189
+ >request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46 , 50))
190
+ >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 47 , 15))
182
191
>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, --, --))
183
- >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44 , 15))
192
+ >D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 47 , 15))
184
193
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
185
194
}
186
195
187
196
declare const api: Api;
188
- >api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 47 , 13))
189
- >Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38 , 1))
197
+ >api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 50 , 13))
198
+ >Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41 , 1))
190
199
191
200
interface Obj { x: number }
192
- >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47 , 23))
193
- >x : Symbol(Obj.x, Decl(awaitedTypeStrictNull.ts, 48 , 15))
201
+ >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50 , 23))
202
+ >x : Symbol(Obj.x, Decl(awaitedTypeStrictNull.ts, 51 , 15))
194
203
195
204
async function fn<T>(): Promise<T extends object ? { [K in keyof T]: Obj } : Obj> {
196
- >fn : Symbol(fn, Decl(awaitedTypeStrictNull.ts, 48 , 27))
197
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50 , 18))
205
+ >fn : Symbol(fn, Decl(awaitedTypeStrictNull.ts, 51 , 27))
206
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53 , 18))
198
207
>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, --, --))
199
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50 , 18))
200
- >K : Symbol(K, Decl(awaitedTypeStrictNull.ts, 50 , 54))
201
- >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50 , 18))
202
- >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47 , 23))
203
- >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47 , 23))
208
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53 , 18))
209
+ >K : Symbol(K, Decl(awaitedTypeStrictNull.ts, 53 , 54))
210
+ >T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53 , 18))
211
+ >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50 , 23))
212
+ >Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50 , 23))
204
213
205
214
// Per #45924, this was failing due to incorrect inference both above and here.
206
215
// Should not error.
207
216
return api.post();
208
- >api.post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41 , 19))
209
- >api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 47 , 13))
210
- >post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41 , 19))
217
+ >api.post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44 , 19))
218
+ >api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 50 , 13))
219
+ >post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44 , 19))
211
220
}
212
221
213
222
// helps with tests where '.types' just prints out the type alias name
214
223
type _Expect<TActual extends TExpected, TExpected> = TActual;
215
- >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54 , 1))
216
- >TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 57 , 13))
217
- >TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 57 , 39))
218
- >TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 57 , 39))
219
- >TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 57 , 13))
224
+ >_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57 , 1))
225
+ >TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 60 , 13))
226
+ >TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 60 , 39))
227
+ >TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 60 , 39))
228
+ >TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 60 , 13))
220
229
0 commit comments