Test case for nested array binding pattern

This commit is contained in:
Sheetal Nandi 2015-12-04 13:19:33 -08:00
parent 7c618a494d
commit 7945de4cd3
6 changed files with 525 additions and 0 deletions

View File

@ -0,0 +1,34 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts]
declare var console: {
log(msg: string): void;
}
type MultiSkilledRobot = [string, [string, string]];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let [, skillA] = multiRobotA;
let [nameMB] = multiRobotB;
let [nameMA, [primarySkillA, secondarySkillA]] = multiRobotA;
let [nameMC] = ["roomba", ["vaccum", "mopping"]];
let [nameMC2, [primarySkillC, secondarySkillC]] = ["roomba", ["vaccum", "mopping"]];
let [...multiRobotAInfo] = multiRobotA;
if (nameMB == nameMA) {
console.log(skillA[0] + skillA[1]);
}
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js]
var multiRobotA = ["mower", ["mowing", ""]];
var multiRobotB = ["trimmer", ["trimming", "edging"]];
var skillA = multiRobotA[1];
var nameMB = multiRobotB[0];
var nameMA = multiRobotA[0], _a = multiRobotA[1], primarySkillA = _a[0], secondarySkillA = _a[1];
var nameMC = ["roomba", ["vaccum", "mopping"]][0];
var _b = ["roomba", ["vaccum", "mopping"]], nameMC2 = _b[0], _c = _b[1], primarySkillC = _c[0], secondarySkillC = _c[1];
var multiRobotAInfo = multiRobotA.slice(0);
if (nameMB == nameMA) {
console.log(skillA[0] + skillA[1]);
}
//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js.map

View File

@ -0,0 +1,2 @@
//// [sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js.map]
{"version":3,"file":"sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js","sourceRoot":"","sources":["sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts"],"names":[],"mappings":"AAIA,IAAI,WAAW,GAAsB,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAI,WAAW,GAAsB,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEzE,IAAI,uBAAwB,CAAC;AAC7B,IAAI,uBAAsB,CAAC;AAC3B,IAAK,uBAAM,uBAAG,qBAAa,EAAE,uBAAe,CAAiB;AAE7D,IAAI,6CAA4C,CAAC;AACjD,IAAkD,sCAAiC,EAA9E,eAAO,cAAG,qBAAa,EAAE,uBAAe,CAAuC;AAEpF,IAAI,sCAAkC,CAAC;AAEvC,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC"}

View File

@ -0,0 +1,327 @@
===================================================================
JsFile: sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js
mapUrl: sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js.map
sourceRoot:
sources: sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js
sourceFile:sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts
-------------------------------------------------------------------
>>>var multiRobotA = ["mower", ["mowing", ""]];
1 >
2 >^^^^
3 > ^^^^^^^^^^^
4 > ^^^
5 > ^
6 > ^^^^^^^
7 > ^^
8 > ^
9 > ^^^^^^^^
10> ^^
11> ^^
12> ^
13> ^
14> ^
15> ^^^^^^^^^^^->
1 >declare var console: {
> log(msg: string): void;
>}
>type MultiSkilledRobot = [string, [string, string]];
>
2 >var
3 > multiRobotA
4 > : MultiSkilledRobot =
5 > [
6 > "mower"
7 > ,
8 > [
9 > "mowing"
10> ,
11> ""
12> ]
13> ]
14> ;
1 >Emitted(1, 1) Source(5, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(5, 5) + SourceIndex(0)
3 >Emitted(1, 16) Source(5, 16) + SourceIndex(0)
4 >Emitted(1, 19) Source(5, 38) + SourceIndex(0)
5 >Emitted(1, 20) Source(5, 39) + SourceIndex(0)
6 >Emitted(1, 27) Source(5, 46) + SourceIndex(0)
7 >Emitted(1, 29) Source(5, 48) + SourceIndex(0)
8 >Emitted(1, 30) Source(5, 49) + SourceIndex(0)
9 >Emitted(1, 38) Source(5, 57) + SourceIndex(0)
10>Emitted(1, 40) Source(5, 59) + SourceIndex(0)
11>Emitted(1, 42) Source(5, 61) + SourceIndex(0)
12>Emitted(1, 43) Source(5, 62) + SourceIndex(0)
13>Emitted(1, 44) Source(5, 63) + SourceIndex(0)
14>Emitted(1, 45) Source(5, 64) + SourceIndex(0)
---
>>>var multiRobotB = ["trimmer", ["trimming", "edging"]];
1->
2 >^^^^
3 > ^^^^^^^^^^^
4 > ^^^
5 > ^
6 > ^^^^^^^^^
7 > ^^
8 > ^
9 > ^^^^^^^^^^
10> ^^
11> ^^^^^^^^
12> ^
13> ^
14> ^
1->
>
2 >var
3 > multiRobotB
4 > : MultiSkilledRobot =
5 > [
6 > "trimmer"
7 > ,
8 > [
9 > "trimming"
10> ,
11> "edging"
12> ]
13> ]
14> ;
1->Emitted(2, 1) Source(6, 1) + SourceIndex(0)
2 >Emitted(2, 5) Source(6, 5) + SourceIndex(0)
3 >Emitted(2, 16) Source(6, 16) + SourceIndex(0)
4 >Emitted(2, 19) Source(6, 38) + SourceIndex(0)
5 >Emitted(2, 20) Source(6, 39) + SourceIndex(0)
6 >Emitted(2, 29) Source(6, 48) + SourceIndex(0)
7 >Emitted(2, 31) Source(6, 50) + SourceIndex(0)
8 >Emitted(2, 32) Source(6, 51) + SourceIndex(0)
9 >Emitted(2, 42) Source(6, 61) + SourceIndex(0)
10>Emitted(2, 44) Source(6, 63) + SourceIndex(0)
11>Emitted(2, 52) Source(6, 71) + SourceIndex(0)
12>Emitted(2, 53) Source(6, 72) + SourceIndex(0)
13>Emitted(2, 54) Source(6, 73) + SourceIndex(0)
14>Emitted(2, 55) Source(6, 74) + SourceIndex(0)
---
>>>var skillA = multiRobotA[1];
1 >
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^->
1 >
>
>
2 >let
3 > [, skillA] = multiRobotA
4 > ;
1 >Emitted(3, 1) Source(8, 1) + SourceIndex(0)
2 >Emitted(3, 5) Source(8, 5) + SourceIndex(0)
3 >Emitted(3, 28) Source(8, 29) + SourceIndex(0)
4 >Emitted(3, 29) Source(8, 30) + SourceIndex(0)
---
>>>var nameMB = multiRobotB[0];
1->
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >let
3 > [nameMB] = multiRobotB
4 > ;
1->Emitted(4, 1) Source(9, 1) + SourceIndex(0)
2 >Emitted(4, 5) Source(9, 5) + SourceIndex(0)
3 >Emitted(4, 28) Source(9, 27) + SourceIndex(0)
4 >Emitted(4, 29) Source(9, 28) + SourceIndex(0)
---
>>>var nameMA = multiRobotA[0], _a = multiRobotA[1], primarySkillA = _a[0], secondarySkillA = _a[1];
1->
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^
4 > ^^^^^^^^^^^^^^^^^^^^^^^
5 > ^^^^^^^^^^^^^^^^^^^^^
6 > ^^
7 > ^^^^^^^^^^^^^^^^^^^^^^^
8 > ^
1->
>
2 >let [
3 > nameMA
4 > , [
5 > primarySkillA
6 > ,
7 > secondarySkillA
8 > ]] = multiRobotA;
1->Emitted(5, 1) Source(10, 1) + SourceIndex(0)
2 >Emitted(5, 5) Source(10, 6) + SourceIndex(0)
3 >Emitted(5, 28) Source(10, 12) + SourceIndex(0)
4 >Emitted(5, 51) Source(10, 15) + SourceIndex(0)
5 >Emitted(5, 72) Source(10, 28) + SourceIndex(0)
6 >Emitted(5, 74) Source(10, 30) + SourceIndex(0)
7 >Emitted(5, 97) Source(10, 45) + SourceIndex(0)
8 >Emitted(5, 98) Source(10, 62) + SourceIndex(0)
---
>>>var nameMC = ["roomba", ["vaccum", "mopping"]][0];
1 >
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
>
2 >let
3 > [nameMC] = ["roomba", ["vaccum", "mopping"]]
4 > ;
1 >Emitted(6, 1) Source(12, 1) + SourceIndex(0)
2 >Emitted(6, 5) Source(12, 5) + SourceIndex(0)
3 >Emitted(6, 50) Source(12, 49) + SourceIndex(0)
4 >Emitted(6, 51) Source(12, 50) + SourceIndex(0)
---
>>>var _b = ["roomba", ["vaccum", "mopping"]], nameMC2 = _b[0], _c = _b[1], primarySkillC = _c[0], secondarySkillC = _c[1];
1->
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^^
5 > ^^^^^^^^^^^^^^^
6 > ^^^^^^^^^^^^^^
7 > ^^^^^^^^^^^^^^^^^^^^^
8 > ^^
9 > ^^^^^^^^^^^^^^^^^^^^^^^
10> ^
1->
>
2 >let [nameMC2, [primarySkillC, secondarySkillC]] =
3 > ["roomba", ["vaccum", "mopping"]]
4 >
5 > nameMC2
6 > , [
7 > primarySkillC
8 > ,
9 > secondarySkillC
10> ]] = ["roomba", ["vaccum", "mopping"]];
1->Emitted(7, 1) Source(13, 1) + SourceIndex(0)
2 >Emitted(7, 5) Source(13, 51) + SourceIndex(0)
3 >Emitted(7, 43) Source(13, 84) + SourceIndex(0)
4 >Emitted(7, 45) Source(13, 6) + SourceIndex(0)
5 >Emitted(7, 60) Source(13, 13) + SourceIndex(0)
6 >Emitted(7, 74) Source(13, 16) + SourceIndex(0)
7 >Emitted(7, 95) Source(13, 29) + SourceIndex(0)
8 >Emitted(7, 97) Source(13, 31) + SourceIndex(0)
9 >Emitted(7, 120) Source(13, 46) + SourceIndex(0)
10>Emitted(7, 121) Source(13, 85) + SourceIndex(0)
---
>>>var multiRobotAInfo = multiRobotA.slice(0);
1 >
2 >^^^^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4 > ^
1 >
>
>
2 >let
3 > [...multiRobotAInfo] = multiRobotA
4 > ;
1 >Emitted(8, 1) Source(15, 1) + SourceIndex(0)
2 >Emitted(8, 5) Source(15, 5) + SourceIndex(0)
3 >Emitted(8, 43) Source(15, 39) + SourceIndex(0)
4 >Emitted(8, 44) Source(15, 40) + SourceIndex(0)
---
>>>if (nameMB == nameMA) {
1 >
2 >^^
3 > ^
4 > ^
5 > ^^^^^^
6 > ^^^^
7 > ^^^^^^
8 > ^
9 > ^
10> ^
11> ^^^^^^^^^^^^^^^^^->
1 >
>
>
2 >if
3 >
4 > (
5 > nameMB
6 > ==
7 > nameMA
8 > )
9 >
10> {
1 >Emitted(9, 1) Source(17, 1) + SourceIndex(0)
2 >Emitted(9, 3) Source(17, 3) + SourceIndex(0)
3 >Emitted(9, 4) Source(17, 4) + SourceIndex(0)
4 >Emitted(9, 5) Source(17, 5) + SourceIndex(0)
5 >Emitted(9, 11) Source(17, 11) + SourceIndex(0)
6 >Emitted(9, 15) Source(17, 15) + SourceIndex(0)
7 >Emitted(9, 21) Source(17, 21) + SourceIndex(0)
8 >Emitted(9, 22) Source(17, 22) + SourceIndex(0)
9 >Emitted(9, 23) Source(17, 23) + SourceIndex(0)
10>Emitted(9, 24) Source(17, 24) + SourceIndex(0)
---
>>> console.log(skillA[0] + skillA[1]);
1->^^^^
2 > ^^^^^^^
3 > ^
4 > ^^^
5 > ^
6 > ^^^^^^
7 > ^
8 > ^
9 > ^
10> ^^^
11> ^^^^^^
12> ^
13> ^
14> ^
15> ^
16> ^
1->
>
2 > console
3 > .
4 > log
5 > (
6 > skillA
7 > [
8 > 0
9 > ]
10> +
11> skillA
12> [
13> 1
14> ]
15> )
16> ;
1->Emitted(10, 5) Source(18, 5) + SourceIndex(0)
2 >Emitted(10, 12) Source(18, 12) + SourceIndex(0)
3 >Emitted(10, 13) Source(18, 13) + SourceIndex(0)
4 >Emitted(10, 16) Source(18, 16) + SourceIndex(0)
5 >Emitted(10, 17) Source(18, 17) + SourceIndex(0)
6 >Emitted(10, 23) Source(18, 23) + SourceIndex(0)
7 >Emitted(10, 24) Source(18, 24) + SourceIndex(0)
8 >Emitted(10, 25) Source(18, 25) + SourceIndex(0)
9 >Emitted(10, 26) Source(18, 26) + SourceIndex(0)
10>Emitted(10, 29) Source(18, 29) + SourceIndex(0)
11>Emitted(10, 35) Source(18, 35) + SourceIndex(0)
12>Emitted(10, 36) Source(18, 36) + SourceIndex(0)
13>Emitted(10, 37) Source(18, 37) + SourceIndex(0)
14>Emitted(10, 38) Source(18, 38) + SourceIndex(0)
15>Emitted(10, 39) Source(18, 39) + SourceIndex(0)
16>Emitted(10, 40) Source(18, 40) + SourceIndex(0)
---
>>>}
1 >
2 >^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
2 >}
1 >Emitted(11, 1) Source(19, 1) + SourceIndex(0)
2 >Emitted(11, 2) Source(19, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.js.map

View File

@ -0,0 +1,58 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts ===
declare var console: {
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 0, 11))
log(msg: string): void;
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 0, 22))
>msg : Symbol(msg, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 1, 8))
}
type MultiSkilledRobot = [string, [string, string]];
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 2, 1))
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 4, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 2, 1))
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 5, 3))
>MultiSkilledRobot : Symbol(MultiSkilledRobot, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 2, 1))
let [, skillA] = multiRobotA;
>skillA : Symbol(skillA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 7, 6))
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 4, 3))
let [nameMB] = multiRobotB;
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 8, 5))
>multiRobotB : Symbol(multiRobotB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 5, 3))
let [nameMA, [primarySkillA, secondarySkillA]] = multiRobotA;
>nameMA : Symbol(nameMA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 9, 5))
>primarySkillA : Symbol(primarySkillA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 9, 14))
>secondarySkillA : Symbol(secondarySkillA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 9, 28))
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 4, 3))
let [nameMC] = ["roomba", ["vaccum", "mopping"]];
>nameMC : Symbol(nameMC, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 11, 5))
let [nameMC2, [primarySkillC, secondarySkillC]] = ["roomba", ["vaccum", "mopping"]];
>nameMC2 : Symbol(nameMC2, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 12, 5))
>primarySkillC : Symbol(primarySkillC, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 12, 15))
>secondarySkillC : Symbol(secondarySkillC, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 12, 29))
let [...multiRobotAInfo] = multiRobotA;
>multiRobotAInfo : Symbol(multiRobotAInfo, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 14, 5))
>multiRobotA : Symbol(multiRobotA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 4, 3))
if (nameMB == nameMA) {
>nameMB : Symbol(nameMB, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 8, 5))
>nameMA : Symbol(nameMA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 9, 5))
console.log(skillA[0] + skillA[1]);
>console.log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 0, 22))
>console : Symbol(console, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 0, 11))
>log : Symbol(log, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 0, 22))
>skillA : Symbol(skillA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 7, 6))
>0 : Symbol(0)
>skillA : Symbol(skillA, Decl(sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts, 7, 6))
>1 : Symbol(1)
}

View File

@ -0,0 +1,84 @@
=== tests/cases/compiler/sourceMapValidationDestructuringVariableStatementArrayBindingPattern2.ts ===
declare var console: {
>console : { log(msg: string): void; }
log(msg: string): void;
>log : (msg: string) => void
>msg : string
}
type MultiSkilledRobot = [string, [string, string]];
>MultiSkilledRobot : [string, [string, string]]
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
>multiRobotA : [string, [string, string]]
>MultiSkilledRobot : [string, [string, string]]
>["mower", ["mowing", ""]] : [string, [string, string]]
>"mower" : string
>["mowing", ""] : [string, string]
>"mowing" : string
>"" : string
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
>multiRobotB : [string, [string, string]]
>MultiSkilledRobot : [string, [string, string]]
>["trimmer", ["trimming", "edging"]] : [string, [string, string]]
>"trimmer" : string
>["trimming", "edging"] : [string, string]
>"trimming" : string
>"edging" : string
let [, skillA] = multiRobotA;
> : undefined
>skillA : [string, string]
>multiRobotA : [string, [string, string]]
let [nameMB] = multiRobotB;
>nameMB : string
>multiRobotB : [string, [string, string]]
let [nameMA, [primarySkillA, secondarySkillA]] = multiRobotA;
>nameMA : string
>primarySkillA : string
>secondarySkillA : string
>multiRobotA : [string, [string, string]]
let [nameMC] = ["roomba", ["vaccum", "mopping"]];
>nameMC : string
>["roomba", ["vaccum", "mopping"]] : [string, string[]]
>"roomba" : string
>["vaccum", "mopping"] : string[]
>"vaccum" : string
>"mopping" : string
let [nameMC2, [primarySkillC, secondarySkillC]] = ["roomba", ["vaccum", "mopping"]];
>nameMC2 : string
>primarySkillC : string
>secondarySkillC : string
>["roomba", ["vaccum", "mopping"]] : [string, [string, string]]
>"roomba" : string
>["vaccum", "mopping"] : [string, string]
>"vaccum" : string
>"mopping" : string
let [...multiRobotAInfo] = multiRobotA;
>multiRobotAInfo : (string | [string, string])[]
>multiRobotA : [string, [string, string]]
if (nameMB == nameMA) {
>nameMB == nameMA : boolean
>nameMB : string
>nameMA : string
console.log(skillA[0] + skillA[1]);
>console.log(skillA[0] + skillA[1]) : void
>console.log : (msg: string) => void
>console : { log(msg: string): void; }
>log : (msg: string) => void
>skillA[0] + skillA[1] : string
>skillA[0] : string
>skillA : [string, string]
>0 : number
>skillA[1] : string
>skillA : [string, string]
>1 : number
}

View File

@ -0,0 +1,20 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
type MultiSkilledRobot = [string, [string, string]];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let [, skillA] = multiRobotA;
let [nameMB] = multiRobotB;
let [nameMA, [primarySkillA, secondarySkillA]] = multiRobotA;
let [nameMC] = ["roomba", ["vaccum", "mopping"]];
let [nameMC2, [primarySkillC, secondarySkillC]] = ["roomba", ["vaccum", "mopping"]];
let [...multiRobotAInfo] = multiRobotA;
if (nameMB == nameMA) {
console.log(skillA[0] + skillA[1]);
}