mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-15 11:35:42 -06:00
Add spread to typeWriter
This commit is contained in:
parent
abe4076417
commit
3497e27d56
@ -53,6 +53,7 @@ class TypeWriterWalker {
|
||||
case ts.SyntaxKind.PostfixUnaryExpression:
|
||||
case ts.SyntaxKind.BinaryExpression:
|
||||
case ts.SyntaxKind.ConditionalExpression:
|
||||
case ts.SyntaxKind.SpreadElementExpression:
|
||||
this.log(node, this.getTypeOfNode(node));
|
||||
break;
|
||||
|
||||
|
||||
@ -9,44 +9,55 @@ function f0() {
|
||||
var a1 = [...a];
|
||||
>a1 : number[]
|
||||
>[...a] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a2 = [1, ...a];
|
||||
>a2 : number[]
|
||||
>[1, ...a] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a3 = [1, 2, ...a];
|
||||
>a3 : number[]
|
||||
>[1, 2, ...a] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a4 = [...a, 1];
|
||||
>a4 : number[]
|
||||
>[...a, 1] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a5 = [...a, 1, 2];
|
||||
>a5 : number[]
|
||||
>[...a, 1, 2] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a6 = [1, 2, ...a, 1, 2];
|
||||
>a6 : number[]
|
||||
>[1, 2, ...a, 1, 2] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a7 = [1, ...a, 2, ...a];
|
||||
>a7 : number[]
|
||||
>[1, ...a, 2, ...a] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var a8 = [...a, ...a, ...a];
|
||||
>a8 : number[]
|
||||
>[...a, ...a, ...a] : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
}
|
||||
|
||||
@ -60,6 +71,7 @@ function f1() {
|
||||
var b = ["hello", ...a, true];
|
||||
>b : (string | number | boolean)[]
|
||||
>["hello", ...a, true] : (string | number | boolean)[]
|
||||
>...a : number[]
|
||||
>a : number[]
|
||||
|
||||
var b: (string | number | boolean)[];
|
||||
@ -72,19 +84,29 @@ function f2() {
|
||||
var a = [...[...[...[...[...[]]]]]];
|
||||
>a : any[]
|
||||
>[...[...[...[...[...[]]]]]] : undefined[]
|
||||
>...[...[...[...[...[]]]]] : undefined[]
|
||||
>[...[...[...[...[]]]]] : undefined[]
|
||||
>...[...[...[...[]]]] : undefined[]
|
||||
>[...[...[...[]]]] : undefined[]
|
||||
>...[...[...[]]] : undefined[]
|
||||
>[...[...[]]] : undefined[]
|
||||
>...[...[]] : undefined[]
|
||||
>[...[]] : undefined[]
|
||||
>...[] : undefined[]
|
||||
>[] : undefined[]
|
||||
|
||||
var b = [...[...[...[...[...[5]]]]]];
|
||||
>b : number[]
|
||||
>[...[...[...[...[...[5]]]]]] : number[]
|
||||
>...[...[...[...[...[5]]]]] : number[]
|
||||
>[...[...[...[...[5]]]]] : number[]
|
||||
>...[...[...[...[5]]]] : number[]
|
||||
>[...[...[...[5]]]] : number[]
|
||||
>...[...[...[5]]] : number[]
|
||||
>[...[...[5]]] : number[]
|
||||
>...[...[5]] : number[]
|
||||
>[...[5]] : number[]
|
||||
>...[5] : number[]
|
||||
>[5] : number[]
|
||||
}
|
||||
|
||||
|
||||
@ -38,11 +38,13 @@ foo(1, 2, "abc");
|
||||
foo(1, 2, ...a);
|
||||
>foo(1, 2, ...a) : void
|
||||
>foo : (x: number, y: number, ...z: string[]) => void
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
foo(1, 2, ...a, "abc");
|
||||
>foo(1, 2, ...a, "abc") : void
|
||||
>foo : (x: number, y: number, ...z: string[]) => void
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
obj.foo(1, 2, "abc");
|
||||
@ -56,6 +58,7 @@ obj.foo(1, 2, ...a);
|
||||
>obj.foo : (x: number, y: number, ...z: string[]) => any
|
||||
>obj : X
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
obj.foo(1, 2, ...a, "abc");
|
||||
@ -63,6 +66,7 @@ obj.foo(1, 2, ...a, "abc");
|
||||
>obj.foo : (x: number, y: number, ...z: string[]) => any
|
||||
>obj : X
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
(obj.foo)(1, 2, "abc");
|
||||
@ -78,6 +82,7 @@ obj.foo(1, 2, ...a, "abc");
|
||||
>obj.foo : (x: number, y: number, ...z: string[]) => any
|
||||
>obj : X
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
(obj.foo)(1, 2, ...a, "abc");
|
||||
@ -86,6 +91,7 @@ obj.foo(1, 2, ...a, "abc");
|
||||
>obj.foo : (x: number, y: number, ...z: string[]) => any
|
||||
>obj : X
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
xa[1].foo(1, 2, "abc");
|
||||
@ -101,6 +107,7 @@ xa[1].foo(1, 2, ...a);
|
||||
>xa[1] : X
|
||||
>xa : X[]
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
xa[1].foo(1, 2, ...a, "abc");
|
||||
@ -109,6 +116,7 @@ xa[1].foo(1, 2, ...a, "abc");
|
||||
>xa[1] : X
|
||||
>xa : X[]
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
(<Function>xa[1].foo)(...[1, 2, "abc"]);
|
||||
@ -120,6 +128,7 @@ xa[1].foo(1, 2, ...a, "abc");
|
||||
>xa[1] : X
|
||||
>xa : X[]
|
||||
>foo : (x: number, y: number, ...z: string[]) => any
|
||||
>...[1, 2, "abc"] : (string | number)[]
|
||||
>[1, 2, "abc"] : (string | number)[]
|
||||
|
||||
class C {
|
||||
@ -145,6 +154,7 @@ class C {
|
||||
>foo : (x: number, y: number, ...z: string[]) => void
|
||||
>x : number
|
||||
>y : number
|
||||
>...z : string[]
|
||||
>z : string[]
|
||||
}
|
||||
foo(x: number, y: number, ...z: string[]) {
|
||||
@ -167,6 +177,7 @@ class D extends C {
|
||||
super(1, 2, ...a);
|
||||
>super(1, 2, ...a) : void
|
||||
>super : typeof C
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
}
|
||||
foo() {
|
||||
@ -183,6 +194,7 @@ class D extends C {
|
||||
>super.foo : (x: number, y: number, ...z: string[]) => void
|
||||
>super : C
|
||||
>foo : (x: number, y: number, ...z: string[]) => void
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
}
|
||||
}
|
||||
@ -192,5 +204,6 @@ var c = new C(1, 2, ...a);
|
||||
>c : C
|
||||
>new C(1, 2, ...a) : C
|
||||
>C : typeof C
|
||||
>...a : string[]
|
||||
>a : string[]
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user