Skip to content

Commit c929e74

Browse files
authored
Add [Constructor]Parameter types to lib.d.ts (#26243)
1 parent cc3d011 commit c929e74

20 files changed

+542
-262
lines changed

src/lib/es5.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,6 +1378,16 @@ type Extract<T, U> = T extends U ? T : never;
13781378
*/
13791379
type NonNullable<T> = T extends null | undefined ? never : T;
13801380

1381+
/**
1382+
* Obtain the parameters of a function type in a tuple
1383+
*/
1384+
type Parameters<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? P : never;
1385+
1386+
/**
1387+
* Obtain the parameters of a constructor function type in a tuple
1388+
*/
1389+
type ConstructorParameters<T extends new (...args: any[]) => any> = T extends new (...args: infer P) => any ? P : never;
1390+
13811391
/**
13821392
* Obtain the return type of a function type
13831393
*/

tests/baselines/reference/genericRestParameters1.errors.txt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
tests/cases/conformance/types/rest/genericRestParameters1.ts(22,1): error TS2556: Expected 3 arguments, but got 1 or more.
22
tests/cases/conformance/types/rest/genericRestParameters1.ts(31,1): error TS2556: Expected 3 arguments, but got 1 or more.
3-
tests/cases/conformance/types/rest/genericRestParameters1.ts(166,1): error TS2322: Type '(a: never) => void' is not assignable to type '(...args: any[]) => void'.
3+
tests/cases/conformance/types/rest/genericRestParameters1.ts(133,40): error TS2344: Type '(...args: T) => void' does not satisfy the constraint '(...args: any[]) => any'.
4+
tests/cases/conformance/types/rest/genericRestParameters1.ts(134,51): error TS2344: Type 'new (...args: T) => void' does not satisfy the constraint 'new (...args: any[]) => any'.
5+
tests/cases/conformance/types/rest/genericRestParameters1.ts(135,23): error TS2344: Type 'Function' does not satisfy the constraint '(...args: any[]) => any'.
6+
Type 'Function' provides no match for the signature '(...args: any[]): any'.
7+
tests/cases/conformance/types/rest/genericRestParameters1.ts(164,1): error TS2322: Type '(a: never) => void' is not assignable to type '(...args: any[]) => void'.
48
Types of parameters 'a' and 'args' are incompatible.
59
Type 'any' is not assignable to type 'never'.
610

711

8-
==== tests/cases/conformance/types/rest/genericRestParameters1.ts (3 errors) ====
12+
==== tests/cases/conformance/types/rest/genericRestParameters1.ts (6 errors) ====
913
declare let f1: (...x: [number, string, boolean]) => void;
1014
declare let f2: (x0: number, x1: string, x2: boolean) => void;
1115

@@ -136,17 +140,22 @@ tests/cases/conformance/types/rest/genericRestParameters1.ts(166,1): error TS232
136140

137141
const c30 = f30(42, x => "" + x, x => x + 1); // [(x: number) => string, (x: number) => number]
138142

139-
type Parameters<T extends Function> = T extends ((...args: infer U) => any) | (new(...args: infer U) => any) ? U : any[];
140-
141143
type T01 = Parameters<(x: number, y: string, z: boolean) => void>;
142144
type T02 = Parameters<(...args: [number, string, boolean]) => void>;
143-
type T03 = Parameters<new (x: number, y: string, z: boolean) => void>;
144-
type T04 = Parameters<new (...args: [number, string, boolean]) => void>;
145+
type T03 = ConstructorParameters<new (x: number, y: string, z: boolean) => void>;
146+
type T04 = ConstructorParameters<new (...args: [number, string, boolean]) => void>;
145147
type T05<T> = Parameters<(...args: T[]) => void>;
146-
type T06<T> = Parameters<new (...args: []) => void>;
148+
type T06<T> = ConstructorParameters<new (...args: []) => void>;
147149
type T07<T extends any[]> = Parameters<(...args: T) => void>;
148-
type T08<T extends any[]> = Parameters<new (...args: T) => void>;
150+
~~~~~~~~~~~~~~~~~~~~
151+
!!! error TS2344: Type '(...args: T) => void' does not satisfy the constraint '(...args: any[]) => any'.
152+
type T08<T extends any[]> = ConstructorParameters<new (...args: T) => void>;
153+
~~~~~~~~~~~~~~~~~~~~~~~~
154+
!!! error TS2344: Type 'new (...args: T) => void' does not satisfy the constraint 'new (...args: any[]) => any'.
149155
type T09 = Parameters<Function>;
156+
~~~~~~~~
157+
!!! error TS2344: Type 'Function' does not satisfy the constraint '(...args: any[]) => any'.
158+
!!! error TS2344: Type 'Function' provides no match for the signature '(...args: any[]): any'.
150159

151160
type Record1 = {
152161
move: [number, 'left' | 'right'];

tests/baselines/reference/genericRestParameters1.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,14 @@ declare function f30<T, U extends ((x: T) => any)[]>(x: T, ...args: U): U;
125125

126126
const c30 = f30(42, x => "" + x, x => x + 1); // [(x: number) => string, (x: number) => number]
127127

128-
type Parameters<T extends Function> = T extends ((...args: infer U) => any) | (new(...args: infer U) => any) ? U : any[];
129-
130128
type T01 = Parameters<(x: number, y: string, z: boolean) => void>;
131129
type T02 = Parameters<(...args: [number, string, boolean]) => void>;
132-
type T03 = Parameters<new (x: number, y: string, z: boolean) => void>;
133-
type T04 = Parameters<new (...args: [number, string, boolean]) => void>;
130+
type T03 = ConstructorParameters<new (x: number, y: string, z: boolean) => void>;
131+
type T04 = ConstructorParameters<new (...args: [number, string, boolean]) => void>;
134132
type T05<T> = Parameters<(...args: T[]) => void>;
135-
type T06<T> = Parameters<new (...args: []) => void>;
133+
type T06<T> = ConstructorParameters<new (...args: []) => void>;
136134
type T07<T extends any[]> = Parameters<(...args: T) => void>;
137-
type T08<T extends any[]> = Parameters<new (...args: T) => void>;
135+
type T08<T extends any[]> = ConstructorParameters<new (...args: T) => void>;
138136
type T09 = Parameters<Function>;
139137

140138
type Record1 = {
@@ -327,15 +325,14 @@ declare const g22: (z?: boolean | undefined) => string[];
327325
declare const g23: () => string[];
328326
declare function f30<T, U extends ((x: T) => any)[]>(x: T, ...args: U): U;
329327
declare const c30: [(x: number) => string, (x: number) => number];
330-
declare type Parameters<T extends Function> = T extends ((...args: infer U) => any) | (new (...args: infer U) => any) ? U : any[];
331328
declare type T01 = Parameters<(x: number, y: string, z: boolean) => void>;
332329
declare type T02 = Parameters<(...args: [number, string, boolean]) => void>;
333-
declare type T03 = Parameters<new (x: number, y: string, z: boolean) => void>;
334-
declare type T04 = Parameters<new (...args: [number, string, boolean]) => void>;
330+
declare type T03 = ConstructorParameters<new (x: number, y: string, z: boolean) => void>;
331+
declare type T04 = ConstructorParameters<new (...args: [number, string, boolean]) => void>;
335332
declare type T05<T> = Parameters<(...args: T[]) => void>;
336-
declare type T06<T> = Parameters<new (...args: []) => void>;
333+
declare type T06<T> = ConstructorParameters<new (...args: []) => void>;
337334
declare type T07<T extends any[]> = Parameters<(...args: T) => void>;
338-
declare type T08<T extends any[]> = Parameters<new (...args: T) => void>;
335+
declare type T08<T extends any[]> = ConstructorParameters<new (...args: T) => void>;
339336
declare type T09 = Parameters<Function>;
340337
declare type Record1 = {
341338
move: [number, 'left' | 'right'];

tests/baselines/reference/genericRestParameters1.symbols

Lines changed: 91 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -494,160 +494,149 @@ const c30 = f30(42, x => "" + x, x => x + 1); // [(x: number) => string, (x: nu
494494
>x : Symbol(x, Decl(genericRestParameters1.ts, 124, 32))
495495
>x : Symbol(x, Decl(genericRestParameters1.ts, 124, 32))
496496

497-
type Parameters<T extends Function> = T extends ((...args: infer U) => any) | (new(...args: infer U) => any) ? U : any[];
498-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
499-
>T : Symbol(T, Decl(genericRestParameters1.ts, 126, 16))
500-
>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
501-
>T : Symbol(T, Decl(genericRestParameters1.ts, 126, 16))
502-
>args : Symbol(args, Decl(genericRestParameters1.ts, 126, 50))
503-
>U : Symbol(U, Decl(genericRestParameters1.ts, 126, 64), Decl(genericRestParameters1.ts, 126, 97))
504-
>args : Symbol(args, Decl(genericRestParameters1.ts, 126, 83))
505-
>U : Symbol(U, Decl(genericRestParameters1.ts, 126, 64), Decl(genericRestParameters1.ts, 126, 97))
506-
>U : Symbol(U, Decl(genericRestParameters1.ts, 126, 64), Decl(genericRestParameters1.ts, 126, 97))
507-
508497
type T01 = Parameters<(x: number, y: string, z: boolean) => void>;
509-
>T01 : Symbol(T01, Decl(genericRestParameters1.ts, 126, 121))
510-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
511-
>x : Symbol(x, Decl(genericRestParameters1.ts, 128, 23))
512-
>y : Symbol(y, Decl(genericRestParameters1.ts, 128, 33))
513-
>z : Symbol(z, Decl(genericRestParameters1.ts, 128, 44))
498+
>T01 : Symbol(T01, Decl(genericRestParameters1.ts, 124, 45))
499+
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
500+
>x : Symbol(x, Decl(genericRestParameters1.ts, 126, 23))
501+
>y : Symbol(y, Decl(genericRestParameters1.ts, 126, 33))
502+
>z : Symbol(z, Decl(genericRestParameters1.ts, 126, 44))
514503

515504
type T02 = Parameters<(...args: [number, string, boolean]) => void>;
516-
>T02 : Symbol(T02, Decl(genericRestParameters1.ts, 128, 66))
517-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
518-
>args : Symbol(args, Decl(genericRestParameters1.ts, 129, 23))
519-
520-
type T03 = Parameters<new (x: number, y: string, z: boolean) => void>;
521-
>T03 : Symbol(T03, Decl(genericRestParameters1.ts, 129, 68))
522-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
523-
>x : Symbol(x, Decl(genericRestParameters1.ts, 130, 27))
524-
>y : Symbol(y, Decl(genericRestParameters1.ts, 130, 37))
525-
>z : Symbol(z, Decl(genericRestParameters1.ts, 130, 48))
526-
527-
type T04 = Parameters<new (...args: [number, string, boolean]) => void>;
528-
>T04 : Symbol(T04, Decl(genericRestParameters1.ts, 130, 70))
529-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
530-
>args : Symbol(args, Decl(genericRestParameters1.ts, 131, 27))
505+
>T02 : Symbol(T02, Decl(genericRestParameters1.ts, 126, 66))
506+
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
507+
>args : Symbol(args, Decl(genericRestParameters1.ts, 127, 23))
508+
509+
type T03 = ConstructorParameters<new (x: number, y: string, z: boolean) => void>;
510+
>T03 : Symbol(T03, Decl(genericRestParameters1.ts, 127, 68))
511+
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
512+
>x : Symbol(x, Decl(genericRestParameters1.ts, 128, 38))
513+
>y : Symbol(y, Decl(genericRestParameters1.ts, 128, 48))
514+
>z : Symbol(z, Decl(genericRestParameters1.ts, 128, 59))
515+
516+
type T04 = ConstructorParameters<new (...args: [number, string, boolean]) => void>;
517+
>T04 : Symbol(T04, Decl(genericRestParameters1.ts, 128, 81))
518+
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
519+
>args : Symbol(args, Decl(genericRestParameters1.ts, 129, 38))
531520

532521
type T05<T> = Parameters<(...args: T[]) => void>;
533-
>T05 : Symbol(T05, Decl(genericRestParameters1.ts, 131, 72))
522+
>T05 : Symbol(T05, Decl(genericRestParameters1.ts, 129, 83))
523+
>T : Symbol(T, Decl(genericRestParameters1.ts, 130, 9))
524+
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
525+
>args : Symbol(args, Decl(genericRestParameters1.ts, 130, 26))
526+
>T : Symbol(T, Decl(genericRestParameters1.ts, 130, 9))
527+
528+
type T06<T> = ConstructorParameters<new (...args: []) => void>;
529+
>T06 : Symbol(T06, Decl(genericRestParameters1.ts, 130, 49))
530+
>T : Symbol(T, Decl(genericRestParameters1.ts, 131, 9))
531+
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
532+
>args : Symbol(args, Decl(genericRestParameters1.ts, 131, 41))
533+
534+
type T07<T extends any[]> = Parameters<(...args: T) => void>;
535+
>T07 : Symbol(T07, Decl(genericRestParameters1.ts, 131, 63))
534536
>T : Symbol(T, Decl(genericRestParameters1.ts, 132, 9))
535-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
536-
>args : Symbol(args, Decl(genericRestParameters1.ts, 132, 26))
537+
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
538+
>args : Symbol(args, Decl(genericRestParameters1.ts, 132, 40))
537539
>T : Symbol(T, Decl(genericRestParameters1.ts, 132, 9))
538540

539-
type T06<T> = Parameters<new (...args: []) => void>;
540-
>T06 : Symbol(T06, Decl(genericRestParameters1.ts, 132, 49))
541+
type T08<T extends any[]> = ConstructorParameters<new (...args: T) => void>;
542+
>T08 : Symbol(T08, Decl(genericRestParameters1.ts, 132, 61))
543+
>T : Symbol(T, Decl(genericRestParameters1.ts, 133, 9))
544+
>ConstructorParameters : Symbol(ConstructorParameters, Decl(lib.es5.d.ts, --, --))
545+
>args : Symbol(args, Decl(genericRestParameters1.ts, 133, 55))
541546
>T : Symbol(T, Decl(genericRestParameters1.ts, 133, 9))
542-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
543-
>args : Symbol(args, Decl(genericRestParameters1.ts, 133, 30))
544-
545-
type T07<T extends any[]> = Parameters<(...args: T) => void>;
546-
>T07 : Symbol(T07, Decl(genericRestParameters1.ts, 133, 52))
547-
>T : Symbol(T, Decl(genericRestParameters1.ts, 134, 9))
548-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
549-
>args : Symbol(args, Decl(genericRestParameters1.ts, 134, 40))
550-
>T : Symbol(T, Decl(genericRestParameters1.ts, 134, 9))
551-
552-
type T08<T extends any[]> = Parameters<new (...args: T) => void>;
553-
>T08 : Symbol(T08, Decl(genericRestParameters1.ts, 134, 61))
554-
>T : Symbol(T, Decl(genericRestParameters1.ts, 135, 9))
555-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
556-
>args : Symbol(args, Decl(genericRestParameters1.ts, 135, 44))
557-
>T : Symbol(T, Decl(genericRestParameters1.ts, 135, 9))
558547

559548
type T09 = Parameters<Function>;
560-
>T09 : Symbol(T09, Decl(genericRestParameters1.ts, 135, 65))
561-
>Parameters : Symbol(Parameters, Decl(genericRestParameters1.ts, 124, 45))
549+
>T09 : Symbol(T09, Decl(genericRestParameters1.ts, 133, 76))
550+
>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --))
562551
>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
563552

564553
type Record1 = {
565-
>Record1 : Symbol(Record1, Decl(genericRestParameters1.ts, 136, 32))
554+
>Record1 : Symbol(Record1, Decl(genericRestParameters1.ts, 134, 32))
566555

567556
move: [number, 'left' | 'right'];
568-
>move : Symbol(move, Decl(genericRestParameters1.ts, 138, 16))
557+
>move : Symbol(move, Decl(genericRestParameters1.ts, 136, 16))
569558

570559
jump: [number, 'up' | 'down'];
571-
>jump : Symbol(jump, Decl(genericRestParameters1.ts, 139, 35))
560+
>jump : Symbol(jump, Decl(genericRestParameters1.ts, 137, 35))
572561

573562
stop: string;
574-
>stop : Symbol(stop, Decl(genericRestParameters1.ts, 140, 32))
563+
>stop : Symbol(stop, Decl(genericRestParameters1.ts, 138, 32))
575564

576565
done: [];
577-
>done : Symbol(done, Decl(genericRestParameters1.ts, 141, 15))
566+
>done : Symbol(done, Decl(genericRestParameters1.ts, 139, 15))
578567
}
579568

580569
type EventType<T> = {
581-
>EventType : Symbol(EventType, Decl(genericRestParameters1.ts, 143, 1))
582-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
570+
>EventType : Symbol(EventType, Decl(genericRestParameters1.ts, 141, 1))
571+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
583572

584573
emit<K extends keyof T = keyof T>(e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]): void;
585-
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
586-
>K : Symbol(K, Decl(genericRestParameters1.ts, 146, 7))
587-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
588-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
589-
>e : Symbol(e, Decl(genericRestParameters1.ts, 146, 36))
590-
>K : Symbol(K, Decl(genericRestParameters1.ts, 146, 7))
591-
>payload : Symbol(payload, Decl(genericRestParameters1.ts, 146, 41))
592-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
593-
>K : Symbol(K, Decl(genericRestParameters1.ts, 146, 7))
594-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
595-
>K : Symbol(K, Decl(genericRestParameters1.ts, 146, 7))
596-
>T : Symbol(T, Decl(genericRestParameters1.ts, 145, 15))
597-
>K : Symbol(K, Decl(genericRestParameters1.ts, 146, 7))
574+
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
575+
>K : Symbol(K, Decl(genericRestParameters1.ts, 144, 7))
576+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
577+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
578+
>e : Symbol(e, Decl(genericRestParameters1.ts, 144, 36))
579+
>K : Symbol(K, Decl(genericRestParameters1.ts, 144, 7))
580+
>payload : Symbol(payload, Decl(genericRestParameters1.ts, 144, 41))
581+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
582+
>K : Symbol(K, Decl(genericRestParameters1.ts, 144, 7))
583+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
584+
>K : Symbol(K, Decl(genericRestParameters1.ts, 144, 7))
585+
>T : Symbol(T, Decl(genericRestParameters1.ts, 143, 15))
586+
>K : Symbol(K, Decl(genericRestParameters1.ts, 144, 7))
598587
}
599588

600589
declare var events: EventType<Record1>;
601-
>events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11))
602-
>EventType : Symbol(EventType, Decl(genericRestParameters1.ts, 143, 1))
603-
>Record1 : Symbol(Record1, Decl(genericRestParameters1.ts, 136, 32))
590+
>events : Symbol(events, Decl(genericRestParameters1.ts, 147, 11))
591+
>EventType : Symbol(EventType, Decl(genericRestParameters1.ts, 141, 1))
592+
>Record1 : Symbol(Record1, Decl(genericRestParameters1.ts, 134, 32))
604593

605594
events.emit('move', 10, 'left');
606-
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
607-
>events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11))
608-
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
595+
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
596+
>events : Symbol(events, Decl(genericRestParameters1.ts, 147, 11))
597+
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
609598

610599
events.emit('jump', 20, 'up');
611-
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
612-
>events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11))
613-
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
600+
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
601+
>events : Symbol(events, Decl(genericRestParameters1.ts, 147, 11))
602+
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
614603

615604
events.emit('stop', 'Bye!');
616-
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
617-
>events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11))
618-
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
605+
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
606+
>events : Symbol(events, Decl(genericRestParameters1.ts, 147, 11))
607+
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
619608

620609
events.emit('done');
621-
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
622-
>events : Symbol(events, Decl(genericRestParameters1.ts, 149, 11))
623-
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 145, 21))
610+
>events.emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
611+
>events : Symbol(events, Decl(genericRestParameters1.ts, 147, 11))
612+
>emit : Symbol(emit, Decl(genericRestParameters1.ts, 143, 21))
624613

625614
// Repro from #25871
626615

627616
declare var ff1: (... args: any[]) => void;
628-
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11))
629-
>args : Symbol(args, Decl(genericRestParameters1.ts, 157, 18))
617+
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 155, 11))
618+
>args : Symbol(args, Decl(genericRestParameters1.ts, 155, 18))
630619

631620
declare var ff2: () => void;
632-
>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 159, 11))
621+
>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 157, 11))
633622

634623
declare var ff3: (...args: []) => void;
635-
>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 160, 11))
636-
>args : Symbol(args, Decl(genericRestParameters1.ts, 160, 18))
624+
>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 158, 11))
625+
>args : Symbol(args, Decl(genericRestParameters1.ts, 158, 18))
637626

638627
declare var ff4: (a: never) => void;
639-
>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 161, 11))
640-
>a : Symbol(a, Decl(genericRestParameters1.ts, 161, 18))
628+
>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 159, 11))
629+
>a : Symbol(a, Decl(genericRestParameters1.ts, 159, 18))
641630

642631
ff1 = ff2;
643-
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11))
644-
>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 159, 11))
632+
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 155, 11))
633+
>ff2 : Symbol(ff2, Decl(genericRestParameters1.ts, 157, 11))
645634

646635
ff1 = ff3;
647-
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11))
648-
>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 160, 11))
636+
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 155, 11))
637+
>ff3 : Symbol(ff3, Decl(genericRestParameters1.ts, 158, 11))
649638

650639
ff1 = ff4; // Error
651-
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 157, 11))
652-
>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 161, 11))
640+
>ff1 : Symbol(ff1, Decl(genericRestParameters1.ts, 155, 11))
641+
>ff4 : Symbol(ff4, Decl(genericRestParameters1.ts, 159, 11))
653642

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy