Destructuring assignment and variable declaration
This commit is contained in:
parent
db492f1c10
commit
1d793f4c5e
|
@ -0,0 +1,41 @@
|
|||
//// [destructuringArrayBindingPatternAndAssignment1.ts]
|
||||
var [p0,p1, p2] : any = [2, 3, 4];
|
||||
var [a, b, c]: [number, number, string] = [1, 2, "string"];
|
||||
var [d, e]: any = undefined;
|
||||
var [f = false, g = 1]: any = undefined;
|
||||
g = 10;
|
||||
f = true;
|
||||
|
||||
var [x] = []
|
||||
var [[[y]], [[[[z]]]]] = [[[]], [[[[]]]]]
|
||||
var [[w], m]: [[string|number], boolean] = [[1], true];
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
var [, w1] = [1, 2, 3];
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
var [,,,...w3] = [1, 2, 3, 4, "hello"];
|
||||
|
||||
var [r, s, ...t] = [1, 2, "string"];
|
||||
var [r1, s1, t1] = [1, 2, "string"];
|
||||
|
||||
|
||||
|
||||
//// [destructuringArrayBindingPatternAndAssignment1.js]
|
||||
var _a = [2, 3, 4], p0 = _a[0], p1 = _a[1], p2 = _a[2];
|
||||
var _b = [1, 2, "string"], a = _b[0], b = _b[1], c = _b[2];
|
||||
var d = undefined[0], e = undefined[1];
|
||||
var _c = undefined[0], f = _c === void 0 ? false : _c, _d = undefined[1], g = _d === void 0 ? 1 : _d;
|
||||
g = 10;
|
||||
f = true;
|
||||
var x = ([])[0];
|
||||
var _e = [[[]], [[[[]]]]], y = _e[0][0][0], z = _e[1][0][0][0][0];
|
||||
var _f = [[1], true], w = _f[0][0], m = _f[1];
|
||||
var _g = [1, 2, 3], w1 = _g[1];
|
||||
var _h = [1, 2, 3, 4], w2 = _h[3];
|
||||
var _j = [1, 2, 3, 4], w2 = _j[3];
|
||||
var _k = [1, 2, 3, 4, "hello"], w3 = _k.slice(3);
|
||||
var _l = [1, 2, "string"], r = _l[0], s = _l[1], t = _l.slice(2);
|
||||
var _m = [1, 2, "string"], r1 = _m[0], s1 = _m[1], t1 = _m[2];
|
|
@ -0,0 +1,133 @@
|
|||
=== tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment1.ts ===
|
||||
var [p0,p1, p2] : any = [2, 3, 4];
|
||||
>p0 : any, Symbol(p0, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 0, 5))
|
||||
>p1 : any, Symbol(p1, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 0, 8))
|
||||
>p2 : any, Symbol(p2, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 0, 11))
|
||||
>[2, 3, 4] : number[]
|
||||
>2 : number
|
||||
>3 : number
|
||||
>4 : number
|
||||
|
||||
var [a, b, c]: [number, number, string] = [1, 2, "string"];
|
||||
>a : number, Symbol(a, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 1, 5))
|
||||
>b : number, Symbol(b, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 1, 7))
|
||||
>c : string, Symbol(c, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 1, 10))
|
||||
>[1, 2, "string"] : [number, number, string]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>"string" : string
|
||||
|
||||
var [d, e]: any = undefined;
|
||||
>d : any, Symbol(d, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 2, 5))
|
||||
>e : any, Symbol(e, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 2, 7))
|
||||
>undefined : undefined, Symbol(undefined)
|
||||
|
||||
var [f = false, g = 1]: any = undefined;
|
||||
>f : boolean, Symbol(f, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 3, 5))
|
||||
>false : boolean
|
||||
>g : number, Symbol(g, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 3, 15))
|
||||
>1 : number
|
||||
>undefined : undefined, Symbol(undefined)
|
||||
|
||||
g = 10;
|
||||
>g = 10 : number
|
||||
>g : number, Symbol(g, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 3, 15))
|
||||
>10 : number
|
||||
|
||||
f = true;
|
||||
>f = true : boolean
|
||||
>f : boolean, Symbol(f, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 3, 5))
|
||||
>true : boolean
|
||||
|
||||
var [x] = []
|
||||
>x : any, Symbol(x, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 7, 5))
|
||||
>[] : undefined[]
|
||||
|
||||
var [[[y]], [[[[z]]]]] = [[[]], [[[[]]]]]
|
||||
>y : any, Symbol(y, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 8, 7))
|
||||
>z : any, Symbol(z, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 8, 16))
|
||||
>[[[]], [[[[]]]]] : [[undefined[]], [[[undefined[]]]]]
|
||||
>[[]] : [undefined[]]
|
||||
>[] : undefined[]
|
||||
>[[[[]]]] : [[[undefined[]]]]
|
||||
>[[[]]] : [[undefined[]]]
|
||||
>[[]] : [undefined[]]
|
||||
>[] : undefined[]
|
||||
|
||||
var [[w], m]: [[string|number], boolean] = [[1], true];
|
||||
>w : string | number, Symbol(w, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 9, 6))
|
||||
>m : boolean, Symbol(m, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 9, 9))
|
||||
>[[1], true] : [[number], boolean]
|
||||
>[1] : [number]
|
||||
>1 : number
|
||||
>true : boolean
|
||||
|
||||
interface J extends Array<Number> {
|
||||
>J : J, Symbol(J, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 9, 55))
|
||||
>Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11))
|
||||
>Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11))
|
||||
|
||||
2: number;
|
||||
}
|
||||
|
||||
var [, w1] = [1, 2, 3];
|
||||
> : undefined
|
||||
>w1 : number, Symbol(w1, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 14, 6))
|
||||
>[1, 2, 3] : [number, number, number]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
> : undefined
|
||||
> : undefined
|
||||
> : undefined
|
||||
>w2 : number, Symbol(w2, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 15, 8), Decl(destructuringArrayBindingPatternAndAssignment1.ts, 16, 8))
|
||||
>[1, 2, 3, 4] : [number, number, number, number]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
>4 : number
|
||||
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
> : undefined
|
||||
> : undefined
|
||||
> : undefined
|
||||
>w2 : number, Symbol(w2, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 15, 8), Decl(destructuringArrayBindingPatternAndAssignment1.ts, 16, 8))
|
||||
>[1, 2, 3, 4] : [number, number, number, number]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
>4 : number
|
||||
|
||||
var [,,,...w3] = [1, 2, 3, 4, "hello"];
|
||||
> : undefined
|
||||
> : undefined
|
||||
> : undefined
|
||||
>w3 : (string | number)[], Symbol(w3, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 17, 8))
|
||||
>[1, 2, 3, 4, "hello"] : (string | number)[]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
>4 : number
|
||||
>"hello" : string
|
||||
|
||||
var [r, s, ...t] = [1, 2, "string"];
|
||||
>r : string | number, Symbol(r, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 19, 5))
|
||||
>s : string | number, Symbol(s, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 19, 7))
|
||||
>t : (string | number)[], Symbol(t, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 19, 10))
|
||||
>[1, 2, "string"] : (string | number)[]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>"string" : string
|
||||
|
||||
var [r1, s1, t1] = [1, 2, "string"];
|
||||
>r1 : number, Symbol(r1, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 20, 5))
|
||||
>s1 : number, Symbol(s1, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 20, 8))
|
||||
>t1 : string, Symbol(t1, Decl(destructuringArrayBindingPatternAndAssignment1.ts, 20, 12))
|
||||
>[1, 2, "string"] : [number, number, string]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>"string" : string
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
//// [destructuringArrayBindingPatternAndAssignment2.ts]
|
||||
function foo() {
|
||||
return [1, 2, 3];
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
}
|
||||
|
||||
var [j, k] = foo();
|
||||
var [...p] = foo();
|
||||
|
||||
|
||||
//// [destructuringArrayBindingPatternAndAssignment2.js]
|
||||
function foo() {
|
||||
return [1, 2, 3];
|
||||
}
|
||||
function bar() {
|
||||
return [1, 2, 3];
|
||||
}
|
||||
var _a = foo(), j = _a[0], k = _a[1];
|
||||
var _b = foo(), p = _b.slice(0);
|
|
@ -0,0 +1,41 @@
|
|||
=== tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment2.ts ===
|
||||
function foo() {
|
||||
>foo : () => number[], Symbol(foo, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 0, 0))
|
||||
|
||||
return [1, 2, 3];
|
||||
>[1, 2, 3] : number[]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
>J : J, Symbol(J, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 2, 1))
|
||||
>Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11))
|
||||
>Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11))
|
||||
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
>bar : () => J, Symbol(bar, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 5, 1))
|
||||
>J : J, Symbol(J, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 2, 1))
|
||||
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
><[number, number, number]>[1, 2, 3] : [number, number, number]
|
||||
>[1, 2, 3] : [number, number, number]
|
||||
>1 : number
|
||||
>2 : number
|
||||
>3 : number
|
||||
}
|
||||
|
||||
var [j, k] = foo();
|
||||
>j : number, Symbol(j, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 11, 5))
|
||||
>k : number, Symbol(k, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 11, 7))
|
||||
>foo() : number[]
|
||||
>foo : () => number[], Symbol(foo, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 0, 0))
|
||||
|
||||
var [...p] = foo();
|
||||
>p : number[], Symbol(p, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 12, 5))
|
||||
>foo() : number[]
|
||||
>foo : () => number[], Symbol(foo, Decl(destructuringArrayBindingPatternAndAssignment2.ts, 0, 0))
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(19,5): error TS2322: Type 'undefined[]' is not assignable to type 'H'.
|
||||
Property '0' is missing in type 'undefined[]'.
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(19,5): error TS2461: Type 'H' is not an array type.
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(20,6): error TS2461: Type 'undefined' is not an array type.
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(20,13): error TS2461: Type 'undefined' is not an array type.
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(21,13): error TS2462: A rest element must be last in an array destructuring pattern
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(22,6): error TS2322: Type 'string' is not assignable to type 'Number'.
|
||||
Property 'toFixed' is missing in type 'String'.
|
||||
tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts(23,5): error TS2461: Type '{}' is not an array type.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/destructuringArrayBindingPatternAndAssignment3.ts (7 errors) ====
|
||||
interface H {
|
||||
0: number,
|
||||
1: string
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
}
|
||||
|
||||
function gg(idx: number) {
|
||||
return {
|
||||
[idx]: true
|
||||
}
|
||||
}
|
||||
|
||||
var [h, g, i]: H = [];
|
||||
~~~~~~~~~
|
||||
!!! error TS2322: Type 'undefined[]' is not assignable to type 'H'.
|
||||
!!! error TS2322: Property '0' is missing in type 'undefined[]'.
|
||||
~~~~~~~~~
|
||||
!!! error TS2461: Type 'H' is not an array type.
|
||||
var [[[y]], [[[[z]]]]] = []
|
||||
~~~~~
|
||||
!!! error TS2461: Type 'undefined' is not an array type.
|
||||
~~~~~~~~~
|
||||
!!! error TS2461: Type 'undefined' is not an array type.
|
||||
var [, , ...w4, , ] = []
|
||||
~~
|
||||
!!! error TS2462: A rest element must be last in an array destructuring pattern
|
||||
var [a = "string", b, c] = bar();
|
||||
~
|
||||
!!! error TS2322: Type 'string' is not assignable to type 'Number'.
|
||||
!!! error TS2322: Property 'toFixed' is missing in type 'String'.
|
||||
var [r, s, t] = gg(1);
|
||||
~~~~~~~~~
|
||||
!!! error TS2461: Type '{}' is not an array type.
|
|
@ -0,0 +1,41 @@
|
|||
//// [destructuringArrayBindingPatternAndAssignment3.ts]
|
||||
interface H {
|
||||
0: number,
|
||||
1: string
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
}
|
||||
|
||||
function gg(idx: number) {
|
||||
return {
|
||||
[idx]: true
|
||||
}
|
||||
}
|
||||
|
||||
var [h, g, i]: H = [];
|
||||
var [[[y]], [[[[z]]]]] = []
|
||||
var [, , ...w4, , ] = []
|
||||
var [a = "string", b, c] = bar();
|
||||
var [r, s, t] = gg(1);
|
||||
|
||||
//// [destructuringArrayBindingPatternAndAssignment3.js]
|
||||
function bar() {
|
||||
return [1, 2, 3];
|
||||
}
|
||||
function gg(idx) {
|
||||
return (_a = {},
|
||||
_a[idx] = true,
|
||||
_a
|
||||
);
|
||||
var _a;
|
||||
}
|
||||
var _a = [], h = _a[0], g = _a[1], i = _a[2];
|
||||
var _b = [], y = _b[0][0][0], z = _b[1][0][0][0][0];
|
||||
var _c = [];
|
||||
var _d = bar(), _e = _d[0], a = _e === void 0 ? "string" : _e, b = _d[1], c = _d[2];
|
||||
var _f = gg(1), r = _f[0], s = _f[1], t = _f[2];
|
|
@ -0,0 +1,27 @@
|
|||
//// [destructuringObjectBindingPatternAndAssignment1.ts]
|
||||
var c = 0;
|
||||
var { a, } = { a:1, };
|
||||
var { b: { c } } = { b: { c } };
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: "world" } };
|
||||
var { d1 }: any = undefined;
|
||||
var { e1 }: any = {};
|
||||
var { f: {f1} = { f1: "string" } }: any = {};
|
||||
var { f2: {f21} = { f21: "string" } }: any = undefined;
|
||||
var { e1: {e2} = { e2: "string" } }: any|{ e1: { e2 } } = undefined;
|
||||
var { e2: {e3} = { e3: "string" } }: any|{ e2: { e3 } } = {};
|
||||
var {g = 1}: any = { g: 100000 };
|
||||
var {1: x} = { 1: "string" };
|
||||
|
||||
//// [destructuringObjectBindingPatternAndAssignment1.js]
|
||||
var c = 0;
|
||||
var a = ({ a: 1 }).a;
|
||||
var c = ({ b: { c: c } }).b.c;
|
||||
var _a = ({ b1: { c1: "world" } }).b1, c1 = (_a === void 0 ? { c1: "string" } : _a).c1;
|
||||
var d1 = undefined.d1;
|
||||
var e1 = ({}).e1;
|
||||
var _b = ({}).f, f1 = (_b === void 0 ? { f1: "string" } : _b).f1;
|
||||
var _c = undefined.f2, f21 = (_c === void 0 ? { f21: "string" } : _c).f21;
|
||||
var _d = undefined.e1, e2 = (_d === void 0 ? { e2: "string" } : _d).e2;
|
||||
var _e = ({}).e2, e3 = (_e === void 0 ? { e3: "string" } : _e).e3;
|
||||
var _f = ({ g: 100000 }).g, g = _f === void 0 ? 1 : _f;
|
||||
var x = ({ 1: "string" })[1];
|
|
@ -0,0 +1,87 @@
|
|||
=== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment1.ts ===
|
||||
var c = 0;
|
||||
>c : number, Symbol(c, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 0, 3), Decl(destructuringObjectBindingPatternAndAssignment1.ts, 2, 10))
|
||||
>0 : number
|
||||
|
||||
var { a, } = { a:1, };
|
||||
>a : number, Symbol(a, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 1, 5))
|
||||
>{ a:1, } : { a: number; }
|
||||
>a : number, Symbol(a, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 1, 14))
|
||||
>1 : number
|
||||
|
||||
var { b: { c } } = { b: { c } };
|
||||
>b : any
|
||||
>c : number, Symbol(c, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 0, 3), Decl(destructuringObjectBindingPatternAndAssignment1.ts, 2, 10))
|
||||
>{ b: { c } } : { b: { c: number; }; }
|
||||
>b : { c: number; }, Symbol(b, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 2, 21))
|
||||
>{ c } : { c: number; }
|
||||
>c : number, Symbol(c, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 2, 26))
|
||||
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: "world" } };
|
||||
>b1 : any
|
||||
>c1 : string, Symbol(c1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 3, 11))
|
||||
>{ c1: "string" } : { c1: string; }
|
||||
>c1 : string, Symbol(c1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 3, 20))
|
||||
>"string" : string
|
||||
>{ b1: { c1: "world" } } : { b1: { c1: string; }; }
|
||||
>b1 : { c1: string; }, Symbol(b1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 3, 42))
|
||||
>{ c1: "world" } : { c1: string; }
|
||||
>c1 : string, Symbol(c1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 3, 48))
|
||||
>"world" : string
|
||||
|
||||
var { d1 }: any = undefined;
|
||||
>d1 : any, Symbol(d1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 4, 5))
|
||||
>undefined : undefined, Symbol(undefined)
|
||||
|
||||
var { e1 }: any = {};
|
||||
>e1 : any, Symbol(e1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 5, 5))
|
||||
>{} : {}
|
||||
|
||||
var { f: {f1} = { f1: "string" } }: any = {};
|
||||
>f : any
|
||||
>f1 : string, Symbol(f1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 6, 10))
|
||||
>{ f1: "string" } : { f1: string; }
|
||||
>f1 : string, Symbol(f1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 6, 17))
|
||||
>"string" : string
|
||||
>{} : {}
|
||||
|
||||
var { f2: {f21} = { f21: "string" } }: any = undefined;
|
||||
>f2 : any
|
||||
>f21 : string, Symbol(f21, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 7, 11))
|
||||
>{ f21: "string" } : { f21: string; }
|
||||
>f21 : string, Symbol(f21, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 7, 19))
|
||||
>"string" : string
|
||||
>undefined : undefined, Symbol(undefined)
|
||||
|
||||
var { e1: {e2} = { e2: "string" } }: any|{ e1: { e2 } } = undefined;
|
||||
>e1 : any
|
||||
>e2 : string, Symbol(e2, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 8, 11))
|
||||
>{ e2: "string" } : { e2: string; }
|
||||
>e2 : string, Symbol(e2, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 8, 18))
|
||||
>"string" : string
|
||||
>e1 : { e2: any; }, Symbol(e1, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 8, 42))
|
||||
>e2 : any, Symbol(e2, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 8, 48))
|
||||
>undefined : undefined, Symbol(undefined)
|
||||
|
||||
var { e2: {e3} = { e3: "string" } }: any|{ e2: { e3 } } = {};
|
||||
>e2 : any
|
||||
>e3 : string, Symbol(e3, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 9, 11))
|
||||
>{ e3: "string" } : { e3: string; }
|
||||
>e3 : string, Symbol(e3, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 9, 18))
|
||||
>"string" : string
|
||||
>e2 : { e3: any; }, Symbol(e2, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 9, 42))
|
||||
>e3 : any, Symbol(e3, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 9, 48))
|
||||
>{} : {}
|
||||
|
||||
var {g = 1}: any = { g: 100000 };
|
||||
>g : number, Symbol(g, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 10, 5))
|
||||
>1 : number
|
||||
>{ g: 100000 } : { g: number; }
|
||||
>g : number, Symbol(g, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 10, 20))
|
||||
>100000 : number
|
||||
|
||||
var {1: x} = { 1: "string" };
|
||||
>x : string, Symbol(x, Decl(destructuringObjectBindingPatternAndAssignment1.ts, 11, 5))
|
||||
>{ 1: "string" } : { 1: string; }
|
||||
>"string" : string
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
//// [destructuringObjectBindingPatternAndAssignment2.ts]
|
||||
interface I {
|
||||
j: number;
|
||||
[str: string]: number;
|
||||
}
|
||||
interface J {
|
||||
[str: string]: number;
|
||||
}
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog",
|
||||
}
|
||||
}
|
||||
|
||||
function zz1(): J {
|
||||
return {
|
||||
"cat": 1,
|
||||
}
|
||||
}
|
||||
|
||||
function yy() {
|
||||
return {}
|
||||
}
|
||||
|
||||
var {j}: I| J = { j: 1000 };
|
||||
var {cat} = zz();
|
||||
var {"cat":cart} = zz();
|
||||
|
||||
var {can}: J = {};
|
||||
var {can1}: J = zz1();
|
||||
|
||||
|
||||
function f() {
|
||||
var { z }: { z: number } = { z };
|
||||
}
|
||||
|
||||
interface K {
|
||||
[idx: number]: boolean
|
||||
}
|
||||
|
||||
var {1: boo}: K = { 1: true };
|
||||
var {1: boo1}: K = { };
|
||||
|
||||
function bar(): K {
|
||||
return { };
|
||||
}
|
||||
var {1: baz} = bar();
|
||||
|
||||
//// [destructuringObjectBindingPatternAndAssignment2.js]
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog"
|
||||
};
|
||||
}
|
||||
function zz1() {
|
||||
return {
|
||||
"cat": 1
|
||||
};
|
||||
}
|
||||
function yy() {
|
||||
return {};
|
||||
}
|
||||
var j = ({ j: 1000 }).j;
|
||||
var cat = (zz()).cat;
|
||||
var cart = (zz())["cat"];
|
||||
var can = ({}).can;
|
||||
var can1 = (zz1()).can1;
|
||||
function f() {
|
||||
var z = ({ z: z }).z;
|
||||
}
|
||||
var boo = ({ 1: true })[1];
|
||||
var boo1 = ({})[1];
|
||||
function bar() {
|
||||
return {};
|
||||
}
|
||||
var baz = (bar())[1];
|
|
@ -0,0 +1,116 @@
|
|||
=== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment2.ts ===
|
||||
interface I {
|
||||
>I : I, Symbol(I, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 0, 0))
|
||||
|
||||
j: number;
|
||||
>j : number, Symbol(j, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 0, 13))
|
||||
|
||||
[str: string]: number;
|
||||
>str : string, Symbol(str, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 2, 5))
|
||||
}
|
||||
interface J {
|
||||
>J : J, Symbol(J, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 3, 1))
|
||||
|
||||
[str: string]: number;
|
||||
>str : string, Symbol(str, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 5, 5))
|
||||
}
|
||||
function zz() {
|
||||
>zz : () => { "cat": string; }, Symbol(zz, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 6, 1))
|
||||
|
||||
return {
|
||||
>{ "cat": "dog", } : { "cat": string; }
|
||||
|
||||
"cat": "dog",
|
||||
>"dog" : string
|
||||
}
|
||||
}
|
||||
|
||||
function zz1(): J {
|
||||
>zz1 : () => J, Symbol(zz1, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 11, 1))
|
||||
>J : J, Symbol(J, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 3, 1))
|
||||
|
||||
return {
|
||||
>{ "cat": 1, } : { [x: string]: number; "cat": number; }
|
||||
|
||||
"cat": 1,
|
||||
>1 : number
|
||||
}
|
||||
}
|
||||
|
||||
function yy() {
|
||||
>yy : () => {}, Symbol(yy, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 17, 1))
|
||||
|
||||
return {}
|
||||
>{} : {}
|
||||
}
|
||||
|
||||
var {j}: I| J = { j: 1000 };
|
||||
>j : number, Symbol(j, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 23, 5))
|
||||
>I : I, Symbol(I, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 0, 0))
|
||||
>J : J, Symbol(J, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 3, 1))
|
||||
>{ j: 1000 } : { [x: string]: number; j: number; }
|
||||
>j : number, Symbol(j, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 23, 17))
|
||||
>1000 : number
|
||||
|
||||
var {cat} = zz();
|
||||
>cat : string, Symbol(cat, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 24, 5))
|
||||
>zz() : { "cat": string; }
|
||||
>zz : () => { "cat": string; }, Symbol(zz, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 6, 1))
|
||||
|
||||
var {"cat":cart} = zz();
|
||||
>cart : string, Symbol(cart, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 25, 5))
|
||||
>zz() : { "cat": string; }
|
||||
>zz : () => { "cat": string; }, Symbol(zz, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 6, 1))
|
||||
|
||||
var {can}: J = {};
|
||||
>can : number, Symbol(can, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 27, 5))
|
||||
>J : J, Symbol(J, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 3, 1))
|
||||
>{} : { [x: string]: undefined; }
|
||||
|
||||
var {can1}: J = zz1();
|
||||
>can1 : number, Symbol(can1, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 28, 5))
|
||||
>J : J, Symbol(J, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 3, 1))
|
||||
>zz1() : J
|
||||
>zz1 : () => J, Symbol(zz1, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 11, 1))
|
||||
|
||||
|
||||
function f() {
|
||||
>f : () => void, Symbol(f, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 28, 22))
|
||||
|
||||
var { z }: { z: number } = { z };
|
||||
>z : number, Symbol(z, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 32, 9))
|
||||
>z : number, Symbol(z, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 32, 16))
|
||||
>{ z } : { z: number; }
|
||||
>z : number, Symbol(z, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 32, 32))
|
||||
}
|
||||
|
||||
interface K {
|
||||
>K : K, Symbol(K, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 33, 1))
|
||||
|
||||
[idx: number]: boolean
|
||||
>idx : number, Symbol(idx, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 36, 5))
|
||||
}
|
||||
|
||||
var {1: boo}: K = { 1: true };
|
||||
>boo : boolean, Symbol(boo, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 39, 5))
|
||||
>K : K, Symbol(K, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 33, 1))
|
||||
>{ 1: true } : { [x: number]: boolean; 1: boolean; }
|
||||
>true : boolean
|
||||
|
||||
var {1: boo1}: K = { };
|
||||
>boo1 : boolean, Symbol(boo1, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 40, 5))
|
||||
>K : K, Symbol(K, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 33, 1))
|
||||
>{ } : { [x: number]: undefined; }
|
||||
|
||||
function bar(): K {
|
||||
>bar : () => K, Symbol(bar, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 40, 23))
|
||||
>K : K, Symbol(K, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 33, 1))
|
||||
|
||||
return { };
|
||||
>{ } : { [x: number]: undefined; }
|
||||
}
|
||||
var {1: baz} = bar();
|
||||
>baz : boolean, Symbol(baz, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 45, 5))
|
||||
>bar() : K
|
||||
>bar : () => K, Symbol(bar, Decl(destructuringObjectBindingPatternAndAssignment2.ts, 40, 23))
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(1,7): error TS1005: ',' expected.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(2,5): error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'.
|
||||
Type '{ i: number; }' is not assignable to type 'number'.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(2,6): error TS2459: Type 'string | number' has no property 'i' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(3,6): error TS2459: Type 'string | number | {}' has no property 'i1' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(4,12): error TS2459: Type '{ f212: string; }' has no property 'f21' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(5,54): error TS2304: Cannot find name 'c'.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(7,7): error TS1180: Property destructuring pattern expected.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(10,7): error TS1005: ':' expected.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(10,15): error TS1005: ':' expected.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts (9 errors) ====
|
||||
var {h?} = { h?: 1 };
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
var {i}: string | number = { i: 2 };
|
||||
~~~
|
||||
!!! error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'.
|
||||
!!! error TS2322: Type '{ i: number; }' is not assignable to type 'number'.
|
||||
~
|
||||
!!! error TS2459: Type 'string | number' has no property 'i' and no string index signature.
|
||||
var {i1}: string | number| {} = { i1: 2 };
|
||||
~~
|
||||
!!! error TS2459: Type 'string | number | {}' has no property 'i1' and no string index signature.
|
||||
var { f2: {f21} = { f212: "string" } }: any = undefined;
|
||||
~~~
|
||||
!!! error TS2459: Type '{ f212: string; }' has no property 'f21' and no string index signature.
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: c } };
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'c'.
|
||||
var { d }: any;
|
||||
var { ...d1 } = {
|
||||
~~~
|
||||
!!! error TS1180: Property destructuring pattern expected.
|
||||
a: 1, b: 1, d1: 9, e: 10
|
||||
}
|
||||
var {1} = { 1 };
|
||||
~
|
||||
!!! error TS1005: ':' expected.
|
||||
~
|
||||
!!! error TS1005: ':' expected.
|
|
@ -0,0 +1,23 @@
|
|||
//// [destructuringObjectBindingPatternAndAssignment3.ts]
|
||||
var {h?} = { h?: 1 };
|
||||
var {i}: string | number = { i: 2 };
|
||||
var {i1}: string | number| {} = { i1: 2 };
|
||||
var { f2: {f21} = { f212: "string" } }: any = undefined;
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: c } };
|
||||
var { d }: any;
|
||||
var { ...d1 } = {
|
||||
a: 1, b: 1, d1: 9, e: 10
|
||||
}
|
||||
var {1} = { 1 };
|
||||
|
||||
//// [destructuringObjectBindingPatternAndAssignment3.js]
|
||||
var h = ({ h: 1 }).h;
|
||||
var i = ({ i: 2 }).i;
|
||||
var i1 = ({ i1: 2 }).i1;
|
||||
var _a = undefined.f2, f21 = (_a === void 0 ? { f212: "string" } : _a).f21;
|
||||
var _b = ({ b1: { c1: c } }).b1, c1 = (_b === void 0 ? { c1: "string" } : _b).c1;
|
||||
var d = (void 0).d;
|
||||
var d1 = ({
|
||||
a: 1, b: 1, d1: 9, e: 10
|
||||
}).d1;
|
||||
var = ({ 1: })[1];
|
|
@ -0,0 +1,37 @@
|
|||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment4.ts(7,6): error TS2459: Type 'K | K1' has no property 'k' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment4.ts(12,6): error TS2459: Type '{}' has no property '2' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment4.ts(23,5): error TS2322: Type '{ "cat": string; }' is not assignable to type 'J'.
|
||||
Index signature is missing in type '{ "cat": string; }'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment4.ts (3 errors) ====
|
||||
interface K {
|
||||
[str: string]: string;
|
||||
}
|
||||
interface K1 {
|
||||
k: string;
|
||||
}
|
||||
var {k}: K|K1 = { k: "string" };
|
||||
~
|
||||
!!! error TS2459: Type 'K | K1' has no property 'k' and no string index signature.
|
||||
|
||||
function barn() {
|
||||
return {};
|
||||
}
|
||||
var {2: baz1} = barn()
|
||||
~
|
||||
!!! error TS2459: Type '{}' has no property '2' and no string index signature.
|
||||
|
||||
interface J {
|
||||
[str: string]: number;
|
||||
}
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog"
|
||||
}
|
||||
}
|
||||
|
||||
var {"can": can}: J = zz();
|
||||
~~~~~~~~~~~~
|
||||
!!! error TS2322: Type '{ "cat": string; }' is not assignable to type 'J'.
|
||||
!!! error TS2322: Index signature is missing in type '{ "cat": string; }'.
|
|
@ -0,0 +1,37 @@
|
|||
//// [destructuringObjectBindingPatternAndAssignment4.ts]
|
||||
interface K {
|
||||
[str: string]: string;
|
||||
}
|
||||
interface K1 {
|
||||
k: string;
|
||||
}
|
||||
var {k}: K|K1 = { k: "string" };
|
||||
|
||||
function barn() {
|
||||
return {};
|
||||
}
|
||||
var {2: baz1} = barn()
|
||||
|
||||
interface J {
|
||||
[str: string]: number;
|
||||
}
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog"
|
||||
}
|
||||
}
|
||||
|
||||
var {"can": can}: J = zz();
|
||||
|
||||
//// [destructuringObjectBindingPatternAndAssignment4.js]
|
||||
var k = ({ k: "string" }).k;
|
||||
function barn() {
|
||||
return {};
|
||||
}
|
||||
var baz1 = (barn())[2];
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog"
|
||||
};
|
||||
}
|
||||
var can = (zz())["can"];
|
|
@ -0,0 +1,15 @@
|
|||
tests/cases/conformance/es6/destructuring/destructuringVariableDeclarationAndAssignment.ts(3,23): error TS2459: Type 'number | { b12: number; b42: number; }' has no property 'b12' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringVariableDeclarationAndAssignment.ts(3,33): error TS2459: Type 'number | { b12: number; b42: number; }' has no property 'b42' and no string index signature.
|
||||
tests/cases/conformance/es6/destructuring/destructuringVariableDeclarationAndAssignment.ts(3,44): error TS2403: Subsequent variable declarations must have the same type. Variable 'c' must be of type 'number', but here has type '(number | { b12: number; b42: number; })[]'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/destructuringVariableDeclarationAndAssignment.ts (3 errors) ====
|
||||
var {o: [a1, a2, a3 = { b1: 1000, b4: 200 }]} = { o: [1, 2, { b1: 4, b4: 0 }] };
|
||||
var {o0: [c, d, { e: e1, f }, , ]} = { o0: [1, 2, { e: 4, f: 0 }] };
|
||||
var {o1: [a11, a21, { b12: b22, b42 },, ...c]} = { o1: [1, 2, { b12: 4, b42: 0 }] };
|
||||
~~~
|
||||
!!! error TS2459: Type 'number | { b12: number; b42: number; }' has no property 'b12' and no string index signature.
|
||||
~~~
|
||||
!!! error TS2459: Type 'number | { b12: number; b42: number; }' has no property 'b42' and no string index signature.
|
||||
~
|
||||
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'c' must be of type 'number', but here has type '(number | { b12: number; b42: number; })[]'.
|
|
@ -0,0 +1,9 @@
|
|||
//// [destructuringVariableDeclarationAndAssignment.ts]
|
||||
var {o: [a1, a2, a3 = { b1: 1000, b4: 200 }]} = { o: [1, 2, { b1: 4, b4: 0 }] };
|
||||
var {o0: [c, d, { e: e1, f }, , ]} = { o0: [1, 2, { e: 4, f: 0 }] };
|
||||
var {o1: [a11, a21, { b12: b22, b42 },, ...c]} = { o1: [1, 2, { b12: 4, b42: 0 }] };
|
||||
|
||||
//// [destructuringVariableDeclarationAndAssignment.js]
|
||||
var _a = ({ o: [1, 2, { b1: 4, b4: 0 }] }).o, a1 = _a[0], a2 = _a[1], _b = _a[2], a3 = _b === void 0 ? { b1: 1000, b4: 200 } : _b;
|
||||
var _c = ({ o0: [1, 2, { e: 4, f: 0 }] }).o0, c = _c[0], d = _c[1], _d = _c[2], e1 = _d.e, f = _d.f;
|
||||
var _e = ({ o1: [1, 2, { b12: 4, b42: 0 }] }).o1, a11 = _e[0], a21 = _e[1], _f = _e[2], b22 = _f.b12, b42 = _f.b42, c = _e.slice(4);
|
|
@ -0,0 +1,22 @@
|
|||
var [p0,p1, p2] : any = [2, 3, 4];
|
||||
var [a, b, c]: [number, number, string] = [1, 2, "string"];
|
||||
var [d, e]: any = undefined;
|
||||
var [f = false, g = 1]: any = undefined;
|
||||
g = 10;
|
||||
f = true;
|
||||
|
||||
var [x] = []
|
||||
var [[[y]], [[[[z]]]]] = [[[]], [[[[]]]]]
|
||||
var [[w], m]: [[string|number], boolean] = [[1], true];
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
var [, w1] = [1, 2, 3];
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
var [,,, w2] = [1, 2, 3, 4];
|
||||
var [,,,...w3] = [1, 2, 3, 4, "hello"];
|
||||
|
||||
var [r, s, ...t] = [1, 2, "string"];
|
||||
var [r1, s1, t1] = [1, 2, "string"];
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
function foo() {
|
||||
return [1, 2, 3];
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
}
|
||||
|
||||
var [j, k] = foo();
|
||||
var [...p] = foo();
|
|
@ -0,0 +1,23 @@
|
|||
interface H {
|
||||
0: number,
|
||||
1: string
|
||||
}
|
||||
interface J extends Array<Number> {
|
||||
2: number;
|
||||
}
|
||||
|
||||
function bar(): J {
|
||||
return <[number, number, number]>[1, 2, 3];
|
||||
}
|
||||
|
||||
function gg(idx: number) {
|
||||
return {
|
||||
[idx]: true
|
||||
}
|
||||
}
|
||||
|
||||
var [h, g, i]: H = [];
|
||||
var [[[y]], [[[[z]]]]] = []
|
||||
var [, , ...w4, , ] = []
|
||||
var [a = "string", b, c] = bar();
|
||||
var [r, s, t] = gg(1);
|
|
@ -0,0 +1,12 @@
|
|||
var c = 0;
|
||||
var { a, } = { a:1, };
|
||||
var { b: { c } } = { b: { c } };
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: "world" } };
|
||||
var { d1 }: any = undefined;
|
||||
var { e1 }: any = {};
|
||||
var { f: {f1} = { f1: "string" } }: any = {};
|
||||
var { f2: {f21} = { f21: "string" } }: any = undefined;
|
||||
var { e1: {e2} = { e2: "string" } }: any|{ e1: { e2 } } = undefined;
|
||||
var { e2: {e3} = { e3: "string" } }: any|{ e2: { e3 } } = {};
|
||||
var {g = 1}: any = { g: 100000 };
|
||||
var {1: x} = { 1: "string" };
|
|
@ -0,0 +1,46 @@
|
|||
interface I {
|
||||
j: number;
|
||||
[str: string]: number;
|
||||
}
|
||||
interface J {
|
||||
[str: string]: number;
|
||||
}
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog",
|
||||
}
|
||||
}
|
||||
|
||||
function zz1(): J {
|
||||
return {
|
||||
"cat": 1,
|
||||
}
|
||||
}
|
||||
|
||||
function yy() {
|
||||
return {}
|
||||
}
|
||||
|
||||
var {j}: I| J = { j: 1000 };
|
||||
var {cat} = zz();
|
||||
var {"cat":cart} = zz();
|
||||
|
||||
var {can}: J = {};
|
||||
var {can1}: J = zz1();
|
||||
|
||||
|
||||
function f() {
|
||||
var { z }: { z: number } = { z };
|
||||
}
|
||||
|
||||
interface K {
|
||||
[idx: number]: boolean
|
||||
}
|
||||
|
||||
var {1: boo}: K = { 1: true };
|
||||
var {1: boo1}: K = { };
|
||||
|
||||
function bar(): K {
|
||||
return { };
|
||||
}
|
||||
var {1: baz} = bar();
|
|
@ -0,0 +1,10 @@
|
|||
var {h?} = { h?: 1 };
|
||||
var {i}: string | number = { i: 2 };
|
||||
var {i1}: string | number| {} = { i1: 2 };
|
||||
var { f2: {f21} = { f212: "string" } }: any = undefined;
|
||||
var { b1: { c1 } = { c1: "string" } } = { b1: { c1: c } };
|
||||
var { d }: any;
|
||||
var { ...d1 } = {
|
||||
a: 1, b: 1, d1: 9, e: 10
|
||||
}
|
||||
var {1} = { 1 };
|
|
@ -0,0 +1,23 @@
|
|||
interface K {
|
||||
[str: string]: string;
|
||||
}
|
||||
interface K1 {
|
||||
k: string;
|
||||
}
|
||||
var {k}: K|K1 = { k: "string" };
|
||||
|
||||
function barn() {
|
||||
return {};
|
||||
}
|
||||
var {2: baz1} = barn()
|
||||
|
||||
interface J {
|
||||
[str: string]: number;
|
||||
}
|
||||
function zz() {
|
||||
return {
|
||||
"cat": "dog"
|
||||
}
|
||||
}
|
||||
|
||||
var {"can": can}: J = zz();
|
|
@ -0,0 +1,3 @@
|
|||
var {o: [a1, a2, a3 = { b1: 1000, b4: 200 }]} = { o: [1, 2, { b1: 4, b4: 0 }] };
|
||||
var {o0: [c, d, { e: e1, f }, , ]} = { o0: [1, 2, { e: 4, f: 0 }] };
|
||||
var {o1: [a11, a21, { b12: b22, b42 },, ...c]} = { o1: [1, 2, { b12: 4, b42: 0 }] };
|
Loading…
Reference in a new issue