mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-14 19:16:17 -06:00
Add tests for for-of destructuring
This commit is contained in:
parent
f3543b718f
commit
00408a68d3
13
tests/baselines/reference/for-of38.js
Normal file
13
tests/baselines/reference/for-of38.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of38.ts]
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
|
||||
//// [for-of38.js]
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
19
tests/baselines/reference/for-of38.types
Normal file
19
tests/baselines/reference/for-of38.types
Normal file
@ -0,0 +1,19 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of38.ts ===
|
||||
var map = new Map([["", true]]);
|
||||
>map : Map<string, boolean>
|
||||
>new Map([["", true]]) : Map<string, boolean>
|
||||
>Map : MapConstructor
|
||||
>[["", true]] : [string, boolean][]
|
||||
>["", true] : [string, boolean]
|
||||
|
||||
for (var [k, v] of map) {
|
||||
>k : string
|
||||
>v : boolean
|
||||
>map : Map<string, boolean>
|
||||
|
||||
k;
|
||||
>k : string
|
||||
|
||||
v;
|
||||
>v : boolean
|
||||
}
|
||||
13
tests/baselines/reference/for-of39.errors.txt
Normal file
13
tests/baselines/reference/for-of39.errors.txt
Normal file
@ -0,0 +1,13 @@
|
||||
tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,15): error TS2453: The type argument for type parameter 'V' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
Type argument candidate 'boolean' is not a valid type argument because it is not a supertype of candidate 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/for-ofStatements/for-of39.ts (1 errors) ====
|
||||
var map = new Map([["", true], ["", 0]]);
|
||||
~~~
|
||||
!!! error TS2453: The type argument for type parameter 'V' cannot be inferred from the usage. Consider specifying the type arguments explicitly.
|
||||
!!! error TS2453: Type argument candidate 'boolean' is not a valid type argument because it is not a supertype of candidate 'number'.
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
13
tests/baselines/reference/for-of39.js
Normal file
13
tests/baselines/reference/for-of39.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of39.ts]
|
||||
var map = new Map([["", true], ["", 0]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
|
||||
//// [for-of39.js]
|
||||
var map = new Map([["", true], ["", 0]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
13
tests/baselines/reference/for-of40.js
Normal file
13
tests/baselines/reference/for-of40.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of40.ts]
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k = "", v = false] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
|
||||
//// [for-of40.js]
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k = "", v = false] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
19
tests/baselines/reference/for-of40.types
Normal file
19
tests/baselines/reference/for-of40.types
Normal file
@ -0,0 +1,19 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of40.ts ===
|
||||
var map = new Map([["", true]]);
|
||||
>map : Map<string, boolean>
|
||||
>new Map([["", true]]) : Map<string, boolean>
|
||||
>Map : MapConstructor
|
||||
>[["", true]] : [string, boolean][]
|
||||
>["", true] : [string, boolean]
|
||||
|
||||
for (var [k = "", v = false] of map) {
|
||||
>k : string
|
||||
>v : boolean
|
||||
>map : Map<string, boolean>
|
||||
|
||||
k;
|
||||
>k : string
|
||||
|
||||
v;
|
||||
>v : boolean
|
||||
}
|
||||
13
tests/baselines/reference/for-of41.js
Normal file
13
tests/baselines/reference/for-of41.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of41.ts]
|
||||
var array = [{x: [0], y: {p: ""}}]
|
||||
for (var {x: [a], y: {p}} of array) {
|
||||
a;
|
||||
p;
|
||||
}
|
||||
|
||||
//// [for-of41.js]
|
||||
var array = [{ x: [0], y: { p: "" } }];
|
||||
for (var { x: [a], y: { p } } of array) {
|
||||
a;
|
||||
p;
|
||||
}
|
||||
24
tests/baselines/reference/for-of41.types
Normal file
24
tests/baselines/reference/for-of41.types
Normal file
@ -0,0 +1,24 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of41.ts ===
|
||||
var array = [{x: [0], y: {p: ""}}]
|
||||
>array : { x: number[]; y: { p: string; }; }[]
|
||||
>[{x: [0], y: {p: ""}}] : { x: number[]; y: { p: string; }; }[]
|
||||
>{x: [0], y: {p: ""}} : { x: number[]; y: { p: string; }; }
|
||||
>x : number[]
|
||||
>[0] : number[]
|
||||
>y : { p: string; }
|
||||
>{p: ""} : { p: string; }
|
||||
>p : string
|
||||
|
||||
for (var {x: [a], y: {p}} of array) {
|
||||
>x : unknown
|
||||
>a : number
|
||||
>y : unknown
|
||||
>p : string
|
||||
>array : { x: number[]; y: { p: string; }; }[]
|
||||
|
||||
a;
|
||||
>a : number
|
||||
|
||||
p;
|
||||
>p : string
|
||||
}
|
||||
13
tests/baselines/reference/for-of42.js
Normal file
13
tests/baselines/reference/for-of42.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of42.ts]
|
||||
var array = [{ x: "", y: 0 }]
|
||||
for (var {x: a, y: b} of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
|
||||
//// [for-of42.js]
|
||||
var array = [{ x: "", y: 0 }];
|
||||
for (var { x: a, y: b } of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
21
tests/baselines/reference/for-of42.types
Normal file
21
tests/baselines/reference/for-of42.types
Normal file
@ -0,0 +1,21 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of42.ts ===
|
||||
var array = [{ x: "", y: 0 }]
|
||||
>array : { x: string; y: number; }[]
|
||||
>[{ x: "", y: 0 }] : { x: string; y: number; }[]
|
||||
>{ x: "", y: 0 } : { x: string; y: number; }
|
||||
>x : string
|
||||
>y : number
|
||||
|
||||
for (var {x: a, y: b} of array) {
|
||||
>x : unknown
|
||||
>a : string
|
||||
>y : unknown
|
||||
>b : number
|
||||
>array : { x: string; y: number; }[]
|
||||
|
||||
a;
|
||||
>a : string
|
||||
|
||||
b;
|
||||
>b : number
|
||||
}
|
||||
11
tests/baselines/reference/for-of43.errors.txt
Normal file
11
tests/baselines/reference/for-of43.errors.txt
Normal file
@ -0,0 +1,11 @@
|
||||
tests/cases/conformance/es6/for-ofStatements/for-of43.ts(2,25): error TS2322: Type 'boolean' is not assignable to type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/for-ofStatements/for-of43.ts (1 errors) ====
|
||||
var array = [{ x: "", y: 0 }]
|
||||
for (var {x: a = "", y: b = true} of array) {
|
||||
~
|
||||
!!! error TS2322: Type 'boolean' is not assignable to type 'number'.
|
||||
a;
|
||||
b;
|
||||
}
|
||||
13
tests/baselines/reference/for-of43.js
Normal file
13
tests/baselines/reference/for-of43.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of43.ts]
|
||||
var array = [{ x: "", y: 0 }]
|
||||
for (var {x: a = "", y: b = true} of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
|
||||
//// [for-of43.js]
|
||||
var array = [{ x: "", y: 0 }];
|
||||
for (var { x: a = "", y: b = true } of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
13
tests/baselines/reference/for-of44.js
Normal file
13
tests/baselines/reference/for-of44.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [for-of44.ts]
|
||||
var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]]
|
||||
for (var [num, strBoolSym] of array) {
|
||||
num;
|
||||
strBoolSym;
|
||||
}
|
||||
|
||||
//// [for-of44.js]
|
||||
var array = [[0, ""], [0, true], [1, Symbol()]];
|
||||
for (var [num, strBoolSym] of array) {
|
||||
num;
|
||||
strBoolSym;
|
||||
}
|
||||
21
tests/baselines/reference/for-of44.types
Normal file
21
tests/baselines/reference/for-of44.types
Normal file
@ -0,0 +1,21 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of44.ts ===
|
||||
var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]]
|
||||
>array : [number, string | boolean | symbol][]
|
||||
>[[0, ""], [0, true], [1, Symbol()]] : ([number, string] | [number, boolean] | [number, symbol])[]
|
||||
>[0, ""] : [number, string]
|
||||
>[0, true] : [number, boolean]
|
||||
>[1, Symbol()] : [number, symbol]
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
for (var [num, strBoolSym] of array) {
|
||||
>num : number
|
||||
>strBoolSym : string | boolean | symbol
|
||||
>array : [number, string | boolean | symbol][]
|
||||
|
||||
num;
|
||||
>num : number
|
||||
|
||||
strBoolSym;
|
||||
>strBoolSym : string | boolean | symbol
|
||||
}
|
||||
24
tests/baselines/reference/for-of45.types
Normal file
24
tests/baselines/reference/for-of45.types
Normal file
@ -0,0 +1,24 @@
|
||||
=== tests/cases/conformance/es6/for-ofStatements/for-of45.ts ===
|
||||
var array = [{x: [0], y: {p: ""}}]
|
||||
>array : { x: number[]; y: { p: string; }; }[]
|
||||
>[{x: [0], y: {p: ""}}] : { x: number[]; y: { p: string; }; }[]
|
||||
>{x: [0], y: {p: ""}} : { x: number[]; y: { p: string; }; }
|
||||
>x : number[]
|
||||
>[0] : number[]
|
||||
>y : { p: string; }
|
||||
>{p: ""} : { p: string; }
|
||||
>p : string
|
||||
|
||||
for (var {x: [a], y: {p}} of array) {
|
||||
>x : unknown
|
||||
>a : number
|
||||
>y : unknown
|
||||
>p : string
|
||||
>array : { x: number[]; y: { p: string; }; }[]
|
||||
|
||||
a;
|
||||
>a : number
|
||||
|
||||
p;
|
||||
>p : string
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of38.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of38.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of39.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of39.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var map = new Map([["", true], ["", 0]]);
|
||||
for (var [k, v] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of40.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of40.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var map = new Map([["", true]]);
|
||||
for (var [k = "", v = false] of map) {
|
||||
k;
|
||||
v;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of41.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of41.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var array = [{x: [0], y: {p: ""}}]
|
||||
for (var {x: [a], y: {p}} of array) {
|
||||
a;
|
||||
p;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of42.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of42.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var array = [{ x: "", y: 0 }]
|
||||
for (var {x: a, y: b} of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of43.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of43.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var array = [{ x: "", y: 0 }]
|
||||
for (var {x: a = "", y: b = true} of array) {
|
||||
a;
|
||||
b;
|
||||
}
|
||||
6
tests/cases/conformance/es6/for-ofStatements/for-of44.ts
Normal file
6
tests/cases/conformance/es6/for-ofStatements/for-of44.ts
Normal file
@ -0,0 +1,6 @@
|
||||
//@target: ES6
|
||||
var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]]
|
||||
for (var [num, strBoolSym] of array) {
|
||||
num;
|
||||
strBoolSym;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user