@@ -17,18 +17,22 @@ function f1() {
1717
1818 let f0 = fx<>; // Error
1919>f0 : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
20+ >fx<> : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
2021>fx : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
2122
2223 let f1 = fx<string>; // { (x: string): string; (x: string, n: number): string; }
2324>f1 : { (x: string): string; (x: string, n: number): string; }
25+ >fx<string> : { (x: string): string; (x: string, n: number): string; }
2426>fx : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
2527
2628 let f2 = fx<string, number>; // (t: [string, number]) => [string, number]
2729>f2 : (t: [string, number]) => [string, number]
30+ >fx<string, number> : (t: [string, number]) => [string, number]
2831>fx : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
2932
3033 let f3 = fx<string, number, boolean>; // Error
3134>f3 : {}
35+ >fx<string, number, boolean> : {}
3236>fx : { <T>(x: T): T; <T>(x: T, n: number): T; <T, U>(t: [T, U]): [T, U]; }
3337}
3438
@@ -53,14 +57,17 @@ function f2() {
5357
5458 const A0 = Array<>; // Error
5559>A0 : ArrayConstructor
60+ >Array<> : ArrayConstructor
5661>Array : ArrayConstructor
5762
5863 const A1 = Array<string>; // new (...) => string[]
5964>A1 : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; }
65+ >Array<string> : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; }
6066>Array : ArrayConstructor
6167
6268 const A2 = Array<string, number>; // Error
6369>A2 : { isArray(arg: any): arg is any[]; readonly prototype: any[]; }
70+ >Array<string, number> : { isArray(arg: any): arg is any[]; readonly prototype: any[]; }
6471>Array : ArrayConstructor
6572}
6673
@@ -92,10 +99,12 @@ function f3() {
9299
93100 let c1 = C<string>; // { new (x: string): C<string>; f<U>(x: U): T[]; prototype: C<any>; }
94101>c1 : { new (x: string): C<string>; prototype: C<any>; f<U>(x: U): U[]; }
102+ >C<string> : { new (x: string): C<string>; prototype: C<any>; f<U>(x: U): U[]; }
95103>C : typeof C
96104
97105 let f1 = C.f<string>; // (x: string) => string[]
98106>f1 : (x: string) => string[]
107+ >C.f<string> : (x: string) => string[]
99108>C.f : <U>(x: U) => U[]
100109>C : typeof C
101110>f : <U>(x: U) => U[]
@@ -110,6 +119,7 @@ function f10(f: { <T>(a: T): T, <U>(a: U, b: number): U[] }) {
110119
111120 let fs = f<string>; // { (a: string): string; (a: string, b: number): string[]; }
112121>fs : { (a: string): string; (a: string, b: number): string[]; }
122+ >f<string> : { (a: string): string; (a: string, b: number): string[]; }
113123>f : { <T>(a: T): T; <U>(a: U, b: number): U[]; }
114124}
115125
@@ -122,6 +132,7 @@ function f11(f: { <T>(a: T): T, (a: string, b: number): string[] }) {
122132
123133 let fs = f<string>; // (a: string) => string
124134>fs : (a: string) => string
135+ >f<string> : (a: string) => string
125136>f : { <T>(a: T): T; (a: string, b: number): string[]; }
126137}
127138
@@ -133,6 +144,7 @@ function f12(f: { <T>(a: T): T, x: string }) {
133144
134145 let fs = f<string>; // { (a: string): string; x: string; }
135146>fs : { (a: string): string; x: string; }
147+ >f<string> : { (a: string): string; x: string; }
136148>f : { <T>(a: T): T; x: string; }
137149}
138150
@@ -144,6 +156,7 @@ function f13(f: { x: string, y: string }) {
144156
145157 let fs = f<string>; // Error, no applicable signatures
146158>fs : { x: string; y: string; }
159+ >f<string> : { x: string; y: string; }
147160>f : { x: string; y: string; }
148161}
149162
@@ -156,6 +169,7 @@ function f14(f: { new <T>(a: T): T, new <U>(a: U, b: number): U[] }) {
156169
157170 let fs = f<string>; // { new (a: string): string; new (a: string, b: number): string[]; }
158171>fs : { new (a: string): string; new (a: string, b: number): string[]; }
172+ >f<string> : { new (a: string): string; new (a: string, b: number): string[]; }
159173>f : { new <T>(a: T): T; new <U>(a: U, b: number): U[]; }
160174}
161175
@@ -168,6 +182,7 @@ function f15(f: { new <T>(a: T): T, <U>(a: U, b: number): U[] }) {
168182
169183 let fs = f<string>; // { new (a: string): string; (a: string, b: number): string[]; }
170184>fs : { (a: string, b: number): string[]; new (a: string): string; }
185+ >f<string> : { (a: string, b: number): string[]; new (a: string): string; }
171186>f : { <U>(a: U, b: number): U[]; new <T>(a: T): T; }
172187}
173188
@@ -180,6 +195,7 @@ function f16(f: { new <T>(a: T): T, (a: string, b: number): string[] }) {
180195
181196 let fs = f<string>; // new (a: string) => string
182197>fs : new (a: string) => string
198+ >f<string> : new (a: string) => string
183199>f : { (a: string, b: number): string[]; new <T>(a: T): T; }
184200}
185201
@@ -192,6 +208,7 @@ function f17(f: { <T>(a: T): T, new (a: string, b: number): string[] }) {
192208
193209 let fs = f<string>; // (a: string) => string
194210>fs : (a: string) => string
211+ >f<string> : (a: string) => string
195212>f : { <T>(a: T): T; new (a: string, b: number): string[]; }
196213}
197214
@@ -204,6 +221,7 @@ function f20(f: (<T>(a: T) => T) & (<U>(a: U, b: number) => U[])) {
204221
205222 let fs = f<string>; // ((a: string) => string) & ((a: string, b: number) => string[]])
206223>fs : ((a: string) => string) & ((a: string, b: number) => string[])
224+ >f<string> : ((a: string) => string) & ((a: string, b: number) => string[])
207225>f : (<T>(a: T) => T) & (<U>(a: U, b: number) => U[])
208226}
209227
@@ -216,6 +234,7 @@ function f21(f: (<T>(a: T) => T) & ((a: string, b: number) => string[])) {
216234
217235 let fs = f<string>; // (a: string) => string
218236>fs : (a: string) => string
237+ >f<string> : (a: string) => string
219238>f : (<T>(a: T) => T) & ((a: string, b: number) => string[])
220239}
221240
@@ -227,6 +246,7 @@ function f22(f: (<T>(a: T) => T) & { x: string }) {
227246
228247 let fs = f<string>; // ((a: string) => string) & { x: string }
229248>fs : ((a: string) => string) & { x: string; }
249+ >f<string> : ((a: string) => string) & { x: string; }
230250>f : (<T>(a: T) => T) & { x: string; }
231251}
232252
@@ -238,6 +258,7 @@ function f23(f: { x: string } & { y: string }) {
238258
239259 let fs = f<string>; // Error, no applicable signatures
240260>fs : { x: string; } & { y: string; }
261+ >f<string> : { x: string; } & { y: string; }
241262>f : { x: string; } & { y: string; }
242263}
243264
@@ -250,6 +271,7 @@ function f24(f: (new <T>(a: T) => T) & (new <U>(a: U, b: number) => U[])) {
250271
251272 let fs = f<string>; // (new (a: string) => string) & ((a: string, b: number) => string[]])
252273>fs : (new (a: string) => string) & (new (a: string, b: number) => string[])
274+ >f<string> : (new (a: string) => string) & (new (a: string, b: number) => string[])
253275>f : (new <T>(a: T) => T) & (new <U>(a: U, b: number) => U[])
254276}
255277
@@ -262,6 +284,7 @@ function f25(f: (new <T>(a: T) => T) & (<U>(a: U, b: number) => U[])) {
262284
263285 let fs = f<string>; // (new (a: string) => string) & ((a: string, b: number) => string[]])
264286>fs : (new (a: string) => string) & ((a: string, b: number) => string[])
287+ >f<string> : (new (a: string) => string) & ((a: string, b: number) => string[])
265288>f : (new <T>(a: T) => T) & (<U>(a: U, b: number) => U[])
266289}
267290
@@ -274,6 +297,7 @@ function f26(f: (new <T>(a: T) => T) & ((a: string, b: number) => string[])) {
274297
275298 let fs = f<string>; // new (a: string) => string
276299>fs : new (a: string) => string
300+ >f<string> : new (a: string) => string
277301>f : (new <T>(a: T) => T) & ((a: string, b: number) => string[])
278302}
279303
@@ -286,6 +310,7 @@ function f27(f: (<T>(a: T) => T) & (new (a: string, b: number) => string[])) {
286310
287311 let fs = f<string>; // (a: string) => string
288312>fs : (a: string) => string
313+ >f<string> : (a: string) => string
289314>f : (<T>(a: T) => T) & (new (a: string, b: number) => string[])
290315}
291316
@@ -298,6 +323,7 @@ function f30(f: (<T>(a: T) => T) | (<U>(a: U, b: number) => U[])) {
298323
299324 let fs = f<string>; // ((a: string) => string) | ((a: string, b: number) => string[]])
300325>fs : ((a: string) => string) | ((a: string, b: number) => string[])
326+ >f<string> : ((a: string) => string) | ((a: string, b: number) => string[])
301327>f : (<T>(a: T) => T) | (<U>(a: U, b: number) => U[])
302328}
303329
@@ -310,6 +336,7 @@ function f31(f: (<T>(a: T) => T) | ((a: string, b: number) => string[])) {
310336
311337 let fs = f<string>; // Error, '(a: string, b: number) => string[]' has no applicable signatures
312338>fs : ((a: string) => string) | {}
339+ >f<string> : ((a: string) => string) | {}
313340>f : (<T>(a: T) => T) | ((a: string, b: number) => string[])
314341}
315342
@@ -321,6 +348,7 @@ function f32(f: (<T>(a: T) => T) | { x: string }) {
321348
322349 let fs = f<string>; // ((a: string) => string) | { x: string }
323350>fs : { x: string; } | ((a: string) => string)
351+ >f<string> : { x: string; } | ((a: string) => string)
324352>f : { x: string; } | (<T>(a: T) => T)
325353}
326354
@@ -332,6 +360,7 @@ function f33(f: { x: string } | { y: string }) {
332360
333361 let fs = f<string>; // Error, no applicable signatures
334362>fs : { x: string; } | { y: string; }
363+ >f<string> : { x: string; } | { y: string; }
335364>f : { x: string; } | { y: string; }
336365}
337366
@@ -344,6 +373,7 @@ function f34(f: (new <T>(a: T) => T) | (new <U>(a: U, b: number) => U[])) {
344373
345374 let fs = f<string>; // (new (a: string) => string) | ((a: string, b: number) => string[]])
346375>fs : (new (a: string) => string) | (new (a: string, b: number) => string[])
376+ >f<string> : (new (a: string) => string) | (new (a: string, b: number) => string[])
347377>f : (new <T>(a: T) => T) | (new <U>(a: U, b: number) => U[])
348378}
349379
@@ -356,6 +386,7 @@ function f35(f: (new <T>(a: T) => T) | (<U>(a: U, b: number) => U[])) {
356386
357387 let fs = f<string>; // (new (a: string) => string) | ((a: string, b: number) => string[]])
358388>fs : (new (a: string) => string) | ((a: string, b: number) => string[])
389+ >f<string> : (new (a: string) => string) | ((a: string, b: number) => string[])
359390>f : (new <T>(a: T) => T) | (<U>(a: U, b: number) => U[])
360391}
361392
@@ -368,6 +399,7 @@ function f36(f: (new <T>(a: T) => T) | ((a: string, b: number) => string[])) {
368399
369400 let fs = f<string>; // Error, '(a: string, b: number) => string[]' has no applicable signatures
370401>fs : (new (a: string) => string) | {}
402+ >f<string> : (new (a: string) => string) | {}
371403>f : (new <T>(a: T) => T) | ((a: string, b: number) => string[])
372404}
373405
@@ -380,6 +412,7 @@ function f37(f: (<T>(a: T) => T) | (new (a: string, b: number) => string[])) {
380412
381413 let fs = f<string>; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures
382414>fs : ((a: string) => string) | {}
415+ >f<string> : ((a: string) => string) | {}
383416>f : (<T>(a: T) => T) | (new (a: string, b: number) => string[])
384417}
385418
@@ -392,6 +425,7 @@ function f38<T extends (<A>(x: A) => A) | (<B>(x: B) => B[]), U>(f: T | U | (<C>
392425
393426 let fs = f<string>; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][])
394427>fs : U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][])
428+ >f<string> : U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][])
395429>f : T | U | (<C>(x: C) => C[][])
396430}
397431
0 commit comments