merge with origin/master

This commit is contained in:
vladima
2016-01-11 22:12:03 -08:00
577 changed files with 128288 additions and 21686 deletions

View File

@@ -19,7 +19,7 @@ function foo00(x) {
var v = x;
(function() { return x + v });
(() => x + v);
if (x == 1) {
if (x == "1") {
return;
}
}
@@ -158,7 +158,7 @@ function foo00_c(x) {
var v = x;
(function() { return x + v });
(() => x + v);
if (x == 1) {
if (x == "1") {
return;
}
}

View File

@@ -21,7 +21,7 @@ function foo00(x) {
var v = x;
(function() { return x + v });
(() => x + v);
if (x == 1) {
if (x == "1") {
return;
}
}
@@ -160,7 +160,7 @@ function foo00_c(x) {
var v = x;
(function() { return x + v });
(() => x + v);
if (x == 1) {
if (x == "1") {
return;
}
}

View File

@@ -13,10 +13,10 @@ for (let x of []) {
for (let x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 2) {
if (x == "2") {
continue;
}
}
@@ -132,10 +132,10 @@ for (const x of []) {
for (const x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 2) {
if (x == "2") {
continue;
}
}

View File

@@ -14,10 +14,10 @@ for (let x of []) {
for (let x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 2) {
if (x == "2") {
continue;
}
}
@@ -133,10 +133,10 @@ for (const x of []) {
for (const x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 2) {
if (x == "2") {
continue;
}
}

View File

@@ -21,16 +21,16 @@ l00:
for (let x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 1) {
if (x == "1") {
break l00;
}
if (x == 2) {
if (x == "2") {
continue;
}
if (x == 2) {
if (x == "2") {
continue l00;
}
}
@@ -209,16 +209,16 @@ l00_c:
for (const x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 1) {
if (x == "1") {
break l00_c;
}
if (x == 2) {
if (x == "2") {
continue;
}
if (x == 2) {
if (x == "2") {
continue l00_c;
}
}

View File

@@ -22,16 +22,16 @@ l00:
for (let x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 1) {
if (x == "1") {
break l00;
}
if (x == 2) {
if (x == "2") {
continue;
}
if (x == 2) {
if (x == "2") {
continue l00;
}
}
@@ -210,16 +210,16 @@ l00_c:
for (const x in []) {
(function() { return x});
(() => x);
if (x == 1) {
if (x == "1") {
break;
}
if (x == 1) {
if (x == "1") {
break l00_c;
}
if (x == 2) {
if (x == "2") {
continue;
}
if (x == 2) {
if (x == "2") {
continue l00_c;
}
}

View File

@@ -0,0 +1,19 @@
// @module: commonjs
// @filename: file1.d.ts
declare var x: number;
declare var x1: number;
declare let {a, b}: {a: number, b: number};
// @filename: file2.ts
export {x, x as y};
export {x1, x1 as y1};
export {a, a as a1};
export {b, b as b1};
export {x as z};
export {x1 as z1};
export {a as a2};
export {b as b2};

View File

@@ -0,0 +1,16 @@
// @module: commonjs
// @filename: file1.d.ts
declare interface I1 {
x: number
}
declare interface I2 {
x: number
}
// @filename: file2.ts
export {I1, I1 as II1};
export {I2, I2 as II2};
export {I1 as III1};
export {I2 as III2};

View File

@@ -0,0 +1,16 @@
// @module: commonjs
// @filename: file1.d.ts
declare namespace NS1 {
export var foo: number;
}
declare namespace NS2 {
export var foo: number;
}
// @filename: file2.ts
export {NS1, NS1 as NNS1};
export {NS2, NS2 as NNS2};
export {NS1 as NNNS1};
export {NS2 as NNNS2};

View File

@@ -0,0 +1,16 @@
// @module: commonjs
// @filename: file1.d.ts
declare class Cls1 {
x: number
}
declare class Cls2 {
x: number
}
// @filename: file2.ts
export {Cls1, Cls1 as CCls1};
export {Cls2, Cls2 as CCls2};
export {Cls1 as CCCls1};
export {Cls2 as CCCls2};

View File

@@ -0,0 +1,15 @@
//@jsx: preserve
//@module: commonjs
//@reactNamespace: myReactLib
//@filename: modules.d.ts
declare module "my-React-Lib" {
var a: any;
export = a;
}
//@filename: test.tsx
import * as myReactLib from "my-React-Lib"; // should not be elided
declare var foo: any;
<foo data/>;

View File

@@ -0,0 +1,4 @@
//@jsx: react
//@reactNamespace: my-React-Lib
<foo data/>;

View File

@@ -0,0 +1,13 @@
//@jsx: react
//@reactNamespace: myReactLib
declare var myReactLib: any;
declare var foo: any;
declare var Bar: any;
declare var x: any;
<foo data/>;
<Bar x={x} />;
<x-component />;
<Bar {...x} />;
<Bar { ...x } y={2} />;

View File

@@ -0,0 +1,5 @@
//@jsx: react
//@reactNamespace: myReactLib
// Error myReactLib not declared
<foo data/>

View File

@@ -0,0 +1,93 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
function getRobot() {
return robotA;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
function getMultiRobot() {
return multiRobotA;
}
for (let [, nameA] = robotA, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, nameA] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, nameA] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [numberB] = robotA, i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [numberB] = getRobot(), i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [numberB] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [nameB] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [nameB] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [nameB] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [numberA2, nameA2, skillA2] = robotA, i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let [numberA2, nameA2, skillA2] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let [numberA2, nameA2, skillA2] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [numberA3, ...robotAInfo] = robotA, i = 0; i < 1; i++) {
console.log(numberA3);
}
for (let [numberA3, ...robotAInfo] = getRobot(), i = 0; i < 1; i++) {
console.log(numberA3);
}
for (let [numberA3, ...robotAInfo] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberA3);
}
for (let [...multiRobotAInfo] = multiRobotA, i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}
for (let [...multiRobotAInfo] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}
for (let [...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}

View File

@@ -0,0 +1,99 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
function getRobot() {
return robotA;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
function getMultiRobot() {
return multiRobotA;
}
let nameA: string, primarySkillA: string, secondarySkillA: string;
let numberB: number, nameB: string;
let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
let i: number;
for ([, nameA] = robotA, i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, nameA] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, nameA] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([numberB] = robotA, i = 0; i < 1; i++) {
console.log(numberB);
}
for ([numberB] = getRobot(), i = 0; i < 1; i++) {
console.log(numberB);
}
for ([numberB] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberB);
}
for ([nameB] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameB);
}
for ([nameB] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameB);
}
for ([nameB] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameB);
}
for ([numberA2, nameA2, skillA2] = robotA, i = 0; i < 1; i++) {
console.log(nameA2);
}
for ([numberA2, nameA2, skillA2] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA2);
}
for ([numberA2, nameA2, skillA2] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA2);
}
for ([nameMA, [primarySkillA, secondarySkillA]] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([nameMA, [primarySkillA, secondarySkillA]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([nameMA, [primarySkillA, secondarySkillA]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([numberA3, ...robotAInfo] = robotA, i = 0; i < 1; i++) {
console.log(numberA3);
}
for ([numberA3, ...robotAInfo] = getRobot(), i = 0; i < 1; i++) {
console.log(numberA3);
}
for ([numberA3, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberA3);
}
for ([...multiRobotAInfo] = multiRobotA, i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}
for ([...multiRobotAInfo] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}
for ([...multiRobotAInfo] = <MultiSkilledRobot>["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(multiRobotAInfo);
}

View File

@@ -0,0 +1,109 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, string[]];
let robotA: Robot = [1, "mower", "mowing"];
function getRobot() {
return robotA;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
function getMultiRobot() {
return multiRobotA;
}
for (let [, nameA ="name"] = robotA, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, nameA = "name"] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, nameA = "name"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = multiRobotA, i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for (let [numberB = -1] = robotA, i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [numberB = -1] = getRobot(), i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [numberB = -1] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberB);
}
for (let [nameB = "name"] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [nameB = "name"] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [nameB = "name"] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameB);
}
for (let [numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = robotA, i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let [numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let [numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let
[nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameMA);
}
for (let [numberA3 = -1, ...robotAInfo] = robotA, i = 0; i < 1; i++) {
console.log(numberA3);
}
for (let [numberA3 = -1, ...robotAInfo] = getRobot(), i = 0; i < 1; i++) {
console.log(numberA3);
}
for (let [numberA3 = -1, ...robotAInfo] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberA3);
}

View File

@@ -0,0 +1,115 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
function getRobot() {
return robotA;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
function getMultiRobot() {
return multiRobotA;
}
let nameA: string, primarySkillA: string, secondarySkillA: string;
let numberB: number, nameB: string;
let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
let i: number;
for ([, nameA = "name"] = robotA, i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, nameA = "name"] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, nameA = "name"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = multiRobotA, i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(primarySkillA);
}
for ([numberB = -1] = robotA, i = 0; i < 1; i++) {
console.log(numberB);
}
for ([numberB = -1] = getRobot(), i = 0; i < 1; i++) {
console.log(numberB);
}
for ([numberB = -1] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberB);
}
for ([nameB = "name"] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameB);
}
for ([nameB = "name"] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameB);
}
for ([nameB = "name"] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameB);
}
for ([numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = robotA, i = 0; i < 1; i++) {
console.log(nameA2);
}
for ([numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = getRobot(), i = 0; i < 1; i++) {
console.log(nameA2);
}
for ([numberA2 = -1, nameA2 = "name", skillA2 = "skill"] = [2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(nameA2);
}
for (let
[nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = multiRobotA, i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = getMultiRobot(), i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([nameMA = "noName",
[
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["none", "none"]
] = ["trimmer", ["trimming", "edging"]], i = 0; i < 1; i++) {
console.log(nameMA);
}
for ([numberA3 = -1, ...robotAInfo] = robotA, i = 0; i < 1; i++) {
console.log(numberA3);
}
for ([numberA3 = -1, ...robotAInfo] = getRobot(), i = 0; i < 1; i++) {
console.log(numberA3);
}
for ([numberA3 = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"], i = 0; i < 1; i++) {
console.log(numberA3);
}

View File

@@ -0,0 +1,67 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
let robot: Robot = { name: "mower", skill: "mowing" };
let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function getRobot() {
return robot;
}
function getMultiRobot() {
return multiRobot;
}
for (let {name: nameA } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}

View File

@@ -0,0 +1,111 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
let robot: Robot = { name: "mower", skill: "mowing" };
let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function getRobot() {
return robot;
}
function getMultiRobot() {
return multiRobot;
}
let nameA: string, primaryA: string, secondaryA: string, i: number, skillA: string;
let name: string, primary: string, secondary: string, skill: string;
for ({ name: nameA } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name: nameA } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name: nameA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ skills: { primary, secondary } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ skills: { primary, secondary } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ skills: { primary, secondary } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name: nameA, skill: skillA } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name: nameA, skill: skillA } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name: nameA, skill: skillA } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name: nameA, skills: { primary: primaryA, secondary: secondaryA } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name: nameA, skills: { primary: primaryA, secondary: secondaryA } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name, skill } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name, skill } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name, skill } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name, skills: { primary, secondary } } = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name, skills: { primary, secondary } } = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name, skills: { primary, secondary } } =
<MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}

View File

@@ -0,0 +1,98 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
let robot: Robot = { name: "mower", skill: "mowing" };
let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function getRobot() {
return robot;
}
function getMultiRobot() {
return multiRobot;
}
for (let {name: nameA= "noName" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}

View File

@@ -0,0 +1,175 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
let robot: Robot = { name: "mower", skill: "mowing" };
let multiRobot: MultiRobot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function getRobot() {
return robot;
}
function getMultiRobot() {
return multiRobot;
}
let nameA: string, primaryA: string, secondaryA: string, i: number, skillA: string;
let name: string, primary: string, secondary: string, skill: string;
for ({name: nameA = "noName" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({name: nameA = "noName" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({name: nameA = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name = "noName" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name = "noName" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name = "noName" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({name: nameA = "noName", skill: skillA = "skill" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({name: nameA = "noName", skill: skillA = "skill" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({name: nameA = "noName", skill: skillA = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({ name = "noName", skill = "skill" } = robot, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name = "noName", skill = "skill" } = getRobot(), i = 0; i < 1; i++) {
console.log(nameA);
}
for ({ name = "noName", skill = "skill" } = <Robot>{ name: "trimmer", skill: "trimming" }, i = 0; i < 1; i++) {
console.log(nameA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = multiRobot, i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = getMultiRobot(), i = 0; i < 1; i++) {
console.log(primaryA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "none", secondary: "none" }
} = <MultiRobot>{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } },
i = 0; i < 1; i++) {
console.log(primaryA);
}

View File

@@ -0,0 +1,96 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
let robotB: Robot = [2, "trimmer", "trimming"];
let robots = [robotA, robotB];
function getRobots() {
return robots;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let multiRobots = [multiRobotA, multiRobotB];
function getMultiRobots() {
return multiRobots;
}
for (let [, nameA] of robots) {
console.log(nameA);
}
for (let [, nameA] of getRobots()) {
console.log(nameA);
}
for (let [, nameA] of [robotA, robotB]) {
console.log(nameA);
}
for (let [, [primarySkillA, secondarySkillA]] of multiRobots) {
console.log(primarySkillA);
}
for (let [, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
console.log(primarySkillA);
}
for (let [, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
console.log(primarySkillA);
}
for (let [numberB] of robots) {
console.log(numberB);
}
for (let [numberB] of getRobots()) {
console.log(numberB);
}
for (let [numberB] of [robotA, robotB]) {
console.log(numberB);
}
for (let [nameB] of multiRobots) {
console.log(nameB);
}
for (let [nameB] of getMultiRobots()) {
console.log(nameB);
}
for (let [nameB] of [multiRobotA, multiRobotB]) {
console.log(nameB);
}
for (let [numberA2, nameA2, skillA2] of robots) {
console.log(nameA2);
}
for (let [numberA2, nameA2, skillA2] of getRobots()) {
console.log(nameA2);
}
for (let [numberA2, nameA2, skillA2] of [robotA, robotB]) {
console.log(nameA2);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
console.log(nameMA);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
console.log(nameMA);
}
for (let [nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
console.log(nameMA);
}
for (let [numberA3, ...robotAInfo] of robots) {
console.log(numberA3);
}
for (let [numberA3, ...robotAInfo] of getRobots()) {
console.log(numberA3);
}
for (let [numberA3, ...robotAInfo] of [robotA, robotB]) {
console.log(numberA3);
}
for (let [...multiRobotAInfo] of multiRobots) {
console.log(multiRobotAInfo);
}
for (let [...multiRobotAInfo] of getMultiRobots()) {
console.log(multiRobotAInfo);
}
for (let [...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
console.log(multiRobotAInfo);
}

View File

@@ -0,0 +1,101 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
let robotB: Robot = [2, "trimmer", "trimming"];
let robots = [robotA, robotB];
function getRobots() {
return robots;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let multiRobots = [multiRobotA, multiRobotB];
function getMultiRobots() {
return multiRobots;
}
let nameA: string, primarySkillA: string, secondarySkillA: string;
let numberB: number, nameB: string;
let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
for ([, nameA] of robots) {
console.log(nameA);
}
for ([, nameA] of getRobots()) {
console.log(nameA);
}
for ([, nameA] of [robotA, robotB]) {
console.log(nameA);
}
for ([, [primarySkillA, secondarySkillA]] of multiRobots) {
console.log(primarySkillA);
}
for ([, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
console.log(primarySkillA);
}
for ([, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
console.log(primarySkillA);
}
for ([numberB] of robots) {
console.log(numberB);
}
for ([numberB] of getRobots()) {
console.log(numberB);
}
for ([numberB] of [robotA, robotB]) {
console.log(numberB);
}
for ([nameB] of multiRobots) {
console.log(nameB);
}
for ([nameB] of getMultiRobots()) {
console.log(nameB);
}
for ([nameB] of [multiRobotA, multiRobotB]) {
console.log(nameB);
}
for ([numberA2, nameA2, skillA2] of robots) {
console.log(nameA2);
}
for ([numberA2, nameA2, skillA2] of getRobots()) {
console.log(nameA2);
}
for ([numberA2, nameA2, skillA2] of [robotA, robotB]) {
console.log(nameA2);
}
for ([nameMA, [primarySkillA, secondarySkillA]] of multiRobots) {
console.log(nameMA);
}
for ([nameMA, [primarySkillA, secondarySkillA]] of getMultiRobots()) {
console.log(nameMA);
}
for ([nameMA, [primarySkillA, secondarySkillA]] of [multiRobotA, multiRobotB]) {
console.log(nameMA);
}
for ([numberA3, ...robotAInfo] of robots) {
console.log(numberA3);
}
for ([numberA3, ...robotAInfo] of getRobots()) {
console.log(numberA3);
}
for ([numberA3, ...robotAInfo] of [robotA, robotB]) {
console.log(numberA3);
}
for ([...multiRobotAInfo] of multiRobots) {
console.log(multiRobotAInfo);
}
for ([...multiRobotAInfo] of getMultiRobots()) {
console.log(multiRobotAInfo);
}
for ([...multiRobotAInfo] of [multiRobotA, multiRobotB]) {
console.log(multiRobotAInfo);
}

View File

@@ -0,0 +1,105 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
let robotB: Robot = [2, "trimmer", "trimming"];
let robots = [robotA, robotB];
function getRobots() {
return robots;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let multiRobots = [multiRobotA, multiRobotB];
function getMultiRobots() {
return multiRobots;
}
for (let [, nameA = "noName"] of robots) {
console.log(nameA);
}
for (let [, nameA = "noName"] of getRobots()) {
console.log(nameA);
}
for (let [, nameA = "noName"] of [robotA, robotB]) {
console.log(nameA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of multiRobots) {
console.log(primarySkillA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of getMultiRobots()) {
console.log(primarySkillA);
}
for (let [, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
console.log(primarySkillA);
}
for (let [numberB = -1] of robots) {
console.log(numberB);
}
for (let [numberB = -1] of getRobots()) {
console.log(numberB);
}
for (let [numberB = -1] of [robotA, robotB]) {
console.log(numberB);
}
for (let [nameB = "noName"] of multiRobots) {
console.log(nameB);
}
for (let [nameB = "noName"] of getMultiRobots()) {
console.log(nameB);
}
for (let [nameB = "noName"] of [multiRobotA, multiRobotB]) {
console.log(nameB);
}
for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
console.log(nameA2);
}
for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
console.log(nameA2);
}
for (let [numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
console.log(nameA2);
}
for (let [nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of multiRobots) {
console.log(nameMA);
}
for (let [nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of getMultiRobots()) {
console.log(nameMA);
}
for (let [nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
console.log(nameMA);
}
for (let [numberA3 = -1, ...robotAInfo] of robots) {
console.log(numberA3);
}
for (let [numberA3 = -1, ...robotAInfo] of getRobots()) {
console.log(numberA3);
}
for (let [numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
console.log(numberA3);
}

View File

@@ -0,0 +1,110 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
let robotA: Robot = [1, "mower", "mowing"];
let robotB: Robot = [2, "trimmer", "trimming"];
let robots = [robotA, robotB];
function getRobots() {
return robots;
}
let multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
let multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let multiRobots = [multiRobotA, multiRobotB];
function getMultiRobots() {
return multiRobots;
}
let nameA: string, primarySkillA: string, secondarySkillA: string;
let numberB: number, nameB: string;
let numberA2: number, nameA2: string, skillA2: string, nameMA: string;
let numberA3: number, robotAInfo: (number | string)[], multiRobotAInfo: (string | [string, string])[];
for ([, nameA = "noName"] of robots) {
console.log(nameA);
}
for ([, nameA = "noName"] of getRobots()) {
console.log(nameA);
}
for ([, nameA = "noName"] of [robotA, robotB]) {
console.log(nameA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of multiRobots) {
console.log(primarySkillA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of getMultiRobots()) {
console.log(primarySkillA);
}
for ([, [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
console.log(primarySkillA);
}
for ([numberB = -1] of robots) {
console.log(numberB);
}
for ([numberB = -1] of getRobots()) {
console.log(numberB);
}
for ([numberB = -1] of [robotA, robotB]) {
console.log(numberB);
}
for ([nameB = "noName"] of multiRobots) {
console.log(nameB);
}
for ([nameB = "noName"] of getMultiRobots()) {
console.log(nameB);
}
for ([nameB = "noName"] of [multiRobotA, multiRobotB]) {
console.log(nameB);
}
for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of robots) {
console.log(nameA2);
}
for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of getRobots()) {
console.log(nameA2);
}
for ([numberA2 = -1, nameA2 = "noName", skillA2 = "skill"] of [robotA, robotB]) {
console.log(nameA2);
}
for ([nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of multiRobots) {
console.log(nameMA);
}
for ([nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of getMultiRobots()) {
console.log(nameMA);
}
for ([nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["skill1", "skill2"]] of [multiRobotA, multiRobotB]) {
console.log(nameMA);
}
for ([numberA3 = -1, ...robotAInfo] of robots) {
console.log(numberA3);
}
for ([numberA3 = -1, ...robotAInfo] of getRobots()) {
console.log(numberA3);
}
for ([numberA3 = -1, ...robotAInfo] of [robotA, robotB]) {
console.log(numberA3);
}

View File

@@ -0,0 +1,68 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
function getRobots() {
return robots;
}
function getMultiRobots() {
return multiRobots;
}
for (let {name: nameA } of robots) {
console.log(nameA);
}
for (let {name: nameA } of getRobots()) {
console.log(nameA);
}
for (let {name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for (let {name: nameA, skill: skillA } of robots) {
console.log(nameA);
}
for (let {name: nameA, skill: skillA } of getRobots()) {
console.log(nameA);
}
for (let {name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
console.log(nameA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
console.log(nameA);
}
for (let {name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}

View File

@@ -0,0 +1,110 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
function getRobots() {
return robots;
}
function getMultiRobots() {
return multiRobots;
}
let nameA: string, primaryA: string, secondaryA: string, i: number, skillA: string;
let name: string, primary: string, secondary: string, skill: string;
for ({name: nameA } of robots) {
console.log(nameA);
}
for ({name: nameA } of getRobots()) {
console.log(nameA);
}
for ({name: nameA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for ({name } of robots) {
console.log(nameA);
}
for ({name } of getRobots()) {
console.log(nameA);
}
for ({name } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({ skills: { primary, secondary } } of multiRobots) {
console.log(primaryA);
}
for ({ skills: { primary, secondary } } of getMultiRobots()) {
console.log(primaryA);
}
for ({ skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for ({name: nameA, skill: skillA } of robots) {
console.log(nameA);
}
for ({name: nameA, skill: skillA } of getRobots()) {
console.log(nameA);
}
for ({name: nameA, skill: skillA } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of multiRobots) {
console.log(nameA);
}
for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of getMultiRobots()) {
console.log(nameA);
}
for ({name: nameA, skills: { primary: primaryA, secondary: secondaryA } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}
for ({name, skill } of robots) {
console.log(nameA);
}
for ({name, skill } of getRobots()) {
console.log(nameA);
}
for ({name, skill } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({name, skills: { primary, secondary } } of multiRobots) {
console.log(nameA);
}
for ({name, skills: { primary, secondary } } of getMultiRobots()) {
console.log(nameA);
}
for ({name, skills: { primary, secondary } } of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}

View File

@@ -0,0 +1,90 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
function getRobots() {
return robots;
}
function getMultiRobots() {
return multiRobots;
}
for (let {name: nameA = "noName" } of robots) {
console.log(nameA);
}
for (let {name: nameA = "noName" } of getRobots()) {
console.log(nameA);
}
for (let {name: nameA = "noName" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of multiRobots) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of getMultiRobots()) {
console.log(primaryA);
}
for (let { skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of
<MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for (let {name: nameA = "noName", skill: skillA = "noSkill" } of robots) {
console.log(nameA);
}
for (let {name: nameA = "noName", skill: skillA = "noSkill" } of getRobots()) {
console.log(nameA);
}
for (let {name: nameA = "noName", skill: skillA = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of multiRobots) {
console.log(nameA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of getMultiRobots()) {
console.log(nameA);
}
for (let {
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of <MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}

View File

@@ -0,0 +1,167 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
interface Robot {
name: string;
skill: string;
}
interface MultiRobot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
let robots: Robot[] = [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }];
let multiRobots: MultiRobot[] = [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }];
function getRobots() {
return robots;
}
function getMultiRobots() {
return multiRobots;
}
let nameA: string, primaryA: string, secondaryA: string, i: number, skillA: string;
let name: string, primary: string, secondary: string, skill: string;
for ({name: nameA = "noName" } of robots) {
console.log(nameA);
}
for ({name: nameA = "noName" } of getRobots()) {
console.log(nameA);
}
for ({name: nameA = "noName" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({ skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of multiRobots) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of getMultiRobots()) {
console.log(primaryA);
}
for ({ skills: { primary: primaryA = "primary", secondary: secondaryA = "secondary" } =
{ primary: "nosKill", secondary: "noSkill" } } of
<MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for ({ name = "noName" } of robots) {
console.log(nameA);
}
for ({ name = "noName" } of getRobots()) {
console.log(nameA);
}
for ({ name = "noName" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of multiRobots) {
console.log(primaryA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of getMultiRobots()) {
console.log(primaryA);
}
for ({
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(primaryA);
}
for ({name: nameA = "noName", skill: skillA = "noSkill" } of robots) {
console.log(nameA);
}
for ({name: nameA = "noName", skill: skillA = "noSkill" } of getRobots()) {
console.log(nameA);
}
for ({name: nameA = "noName", skill: skillA = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of multiRobots) {
console.log(nameA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of getMultiRobots()) {
console.log(nameA);
}
for ({
name: nameA = "noName",
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of <MultiRobot[]>[{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}
for ({ name = "noName", skill = "noSkill" } of robots) {
console.log(nameA);
}
for ({ name = "noName", skill = "noSkill" } of getRobots()) {
console.log(nameA);
}
for ({ name = "noName", skill = "noSkill" } of [{ name: "mower", skill: "mowing" }, { name: "trimmer", skill: "trimming" }]) {
console.log(nameA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of multiRobots) {
console.log(nameA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of getMultiRobots()) {
console.log(nameA);
}
for ({
name = "noName",
skills: {
primary = "primary",
secondary = "secondary"
} = { primary: "noSkill", secondary: "noSkill" }
} of [{ name: "mower", skills: { primary: "mowing", secondary: "none" } },
{ name: "trimmer", skills: { primary: "trimming", secondary: "edging" } }]) {
console.log(nameA);
}

View File

@@ -0,0 +1,31 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function foo1({ skills: { primary: primaryA, secondary: secondaryA } }: Robot) {
console.log(primaryA);
}
function foo2({ name: nameC, skills: { primary: primaryB, secondary: secondaryB } }: Robot) {
console.log(secondaryB);
}
function foo3({ skills }: Robot) {
console.log(skills.primary);
}
foo1(robotA);
foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
foo2(robotA);
foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
foo3(robotA);
foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });

View File

@@ -0,0 +1,44 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function foo1(
{
skills: {
primary: primaryA = "primary",
secondary: secondaryA = "secondary"
} = { primary: "SomeSkill", secondary: "someSkill" }
}: Robot = robotA) {
console.log(primaryA);
}
function foo2(
{
name: nameC = "name",
skills: {
primary: primaryB = "primary",
secondary: secondaryB = "secondary"
} = { primary: "SomeSkill", secondary: "someSkill" }
}: Robot = robotA) {
console.log(secondaryB);
}
function foo3({ skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot = robotA) {
console.log(skills.primary);
}
foo1(robotA);
foo1({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
foo2(robotA);
foo2({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });
foo3(robotA);
foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } });

View File

@@ -0,0 +1,29 @@
// @sourcemap: true
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
function foo1({ name: nameA }: Robot) {
console.log(nameA);
}
function foo2({ name: nameB, skill: skillB }: Robot) {
console.log(nameB);
}
function foo3({ name }: Robot) {
console.log(name);
}
foo1(robotA);
foo1({ name: "Edger", skill: "cutting edges" });
foo2(robotA);
foo2({ name: "Edger", skill: "cutting edges" });
foo3(robotA);
foo3({ name: "Edger", skill: "cutting edges" });

View File

@@ -0,0 +1,29 @@
// @sourcemap: true
interface Robot {
name?: string;
skill?: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
function foo1({ name: nameA = "<NoName>" }: Robot = { }) {
console.log(nameA);
}
function foo2({ name: nameB = "<NoName>", skill: skillB = "noSkill" }: Robot = {}) {
console.log(nameB);
}
function foo3({ name = "<NoName>" }: Robot = {}) {
console.log(name);
}
foo1(robotA);
foo1({ name: "Edger", skill: "cutting edges" });
foo2(robotA);
foo2({ name: "Edger", skill: "cutting edges" });
foo3(robotA);
foo3({ name: "Edger", skill: "cutting edges" });

View File

@@ -0,0 +1,34 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
var robotA: Robot = [1, "mower", "mowing"];
function foo1([, nameA]: Robot) {
console.log(nameA);
}
function foo2([numberB]: Robot) {
console.log(numberB);
}
function foo3([numberA2, nameA2, skillA2]: Robot) {
console.log(nameA2);
}
function foo4([numberA3, ...robotAInfo]: Robot) {
console.log(robotAInfo);
}
foo1(robotA);
foo1([2, "trimmer", "trimming"]);
foo2(robotA);
foo2([2, "trimmer", "trimming"]);
foo3(robotA);
foo3([2, "trimmer", "trimming"]);
foo4(robotA);
foo4([2, "trimmer", "trimming"]);

View File

@@ -0,0 +1,34 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [string, [string, string]];
var robotA: Robot = ["trimmer", ["trimming", "edging"]];
function foo1([, skillA]: Robot) {
console.log(skillA);
}
function foo2([nameMB]: Robot) {
console.log(nameMB);
}
function foo3([nameMA, [primarySkillA, secondarySkillA]]: Robot) {
console.log(nameMA);
}
function foo4([...multiRobotAInfo]: Robot) {
console.log(multiRobotAInfo);
}
foo1(robotA);
foo1(["roomba", ["vaccum", "mopping"]]);
foo2(robotA);
foo2(["roomba", ["vaccum", "mopping"]]);
foo3(robotA);
foo3(["roomba", ["vaccum", "mopping"]]);
foo4(robotA);
foo4(["roomba", ["vaccum", "mopping"]]);

View File

@@ -0,0 +1,34 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
var robotA: Robot = [1, "mower", "mowing"];
function foo1([, nameA = "noName"]: Robot = [-1, "name", "skill"]) {
console.log(nameA);
}
function foo2([numberB = -1]: Robot = [-1, "name", "skill"]) {
console.log(numberB);
}
function foo3([numberA2 = -1, nameA2 = "name", skillA2 = "skill"]: Robot = [-1, "name", "skill"]) {
console.log(nameA2);
}
function foo4([numberA3 = -1, ...robotAInfo]: Robot = [-1, "name", "skill"]) {
console.log(robotAInfo);
}
foo1(robotA);
foo1([2, "trimmer", "trimming"]);
foo2(robotA);
foo2([2, "trimmer", "trimming"]);
foo3(robotA);
foo3([2, "trimmer", "trimming"]);
foo4(robotA);
foo4([2, "trimmer", "trimming"]);

View File

@@ -0,0 +1,30 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [string, string[]];
var robotA: Robot = ["trimmer", ["trimming", "edging"]];
function foo1([, skillA = ["noSkill", "noSkill"]]: Robot= ["name", ["skill1", "skill2"]]) {
console.log(skillA);
}
function foo2([nameMB = "noName"]: Robot = ["name", ["skill1", "skill2"]]) {
console.log(nameMB);
}
function foo3([nameMA = "noName", [
primarySkillA = "primary",
secondarySkillA = "secondary"
] = ["noSkill", "noSkill"]]: Robot) {
console.log(nameMA);
}
foo1(robotA);
foo1(["roomba", ["vaccum", "mopping"]]);
foo2(robotA);
foo2(["roomba", ["vaccum", "mopping"]]);
foo3(robotA);
foo3(["roomba", ["vaccum", "mopping"]]);

View File

@@ -0,0 +1,20 @@
// @sourcemap: true
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
var robotB: Robot = { name: "trimmer", skill: "trimming" };
var { name: nameA } = robotA;
var { name: nameB, skill: skillB } = robotB;
var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}

View File

@@ -0,0 +1,28 @@
// @sourcemap: true
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
var robotB: Robot = { name: "trimmer", skill: "trimming" };
var a: string, { name: nameA } = robotA;
var b: string, { name: nameB, skill: skillB } = robotB;
var c: string, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" };
var { name: nameA } = robotA, a = hello;
var { name: nameB, skill: skillB } = robotB, b = " hello";
var { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c = hello;
var a = hello, { name: nameA } = robotA, a1= "hello";
var b = hello, { name: nameB, skill: skillB } = robotB, b1 = "hello";
var c = hello, { name: nameC, skill: skillC } = { name: "Edger", skill: "cutting edges" }, c1 = hello;
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}

View File

@@ -0,0 +1,21 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
type Robot = [number, string, string];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
let [, nameA] = robotA;
let [numberB] = robotB;
let [numberA2, nameA2, skillA2] = robotA;
let [numberC2] = [3, "edging", "Trimming edges"];
let [numberC, nameC, skillC] = [3, "edging", "Trimming edges"];
let [numberA3, ...robotAInfo] = robotA;
if (nameA == nameA2) {
console.log(skillA2);
}

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]);
}

View File

@@ -0,0 +1,57 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, [string, string]];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let nameA: string, numberB: number, nameB: string, skillB: string;
let robotAInfo: (number | string)[];
let multiSkillB: [string, string], nameMB: string, primarySkillB: string, secondarySkillB: string;
let multiRobotAInfo: (string | [string, string])[];
[, nameA] = robotA;
[, nameB] = getRobotB();
[, nameB] = [2, "trimmer", "trimming"];
[, multiSkillB] = multiRobotB;
[, multiSkillB] = getMultiRobotB();
[, multiSkillB] = ["roomba", ["vaccum", "mopping"]];
[numberB] = robotB;
[numberB] = getRobotB();
[numberB] = [2, "trimmer", "trimming"];
[nameMB] = multiRobotB;
[nameMB] = getMultiRobotB();
[nameMB] = ["trimmer", ["trimming", "edging"]];
[numberB, nameB, skillB] = robotB;
[numberB, nameB, skillB] = getRobotB();
[numberB, nameB, skillB] = [2, "trimmer", "trimming"];
[nameMB, [primarySkillB, secondarySkillB]] = multiRobotB;
[nameMB, [primarySkillB, secondarySkillB]] = getMultiRobotB();
[nameMB, [primarySkillB, secondarySkillB]] = ["trimmer", ["trimming", "edging"]];
[numberB, ...robotAInfo] = robotB;
[numberB, ...robotAInfo] = getRobotB();
[numberB, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
[...multiRobotAInfo] = multiRobotA;
[...multiRobotAInfo] = getMultiRobotB();
[...multiRobotAInfo] = ["trimmer", ["trimming", "edging"]];
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}

View File

@@ -0,0 +1,20 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
type Robot = [number, string, string];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
let [, nameA = "noName"] = robotA;
let [numberB = -1] = robotB;
let [numberA2 = -1, nameA2 = "noName", skillA2 = "noSkill"] = robotA;
let [numberC2 = -1] = [3, "edging", "Trimming edges"];
let [numberC = -1, nameC = "noName", skillC = "noSkill"] = [3, "edging", "Trimming edges"];
let [numberA3 = -1, ...robotAInfo] = robotA;
if (nameA == nameA2) {
console.log(skillA2);
}

View File

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

View File

@@ -0,0 +1,55 @@
// @sourcemap: true
declare var console: {
log(msg: any): void;
}
type Robot = [number, string, string];
type MultiSkilledRobot = [string, string[]];
var robotA: Robot = [1, "mower", "mowing"];
var robotB: Robot = [2, "trimmer", "trimming"];
var multiRobotA: MultiSkilledRobot = ["mower", ["mowing", ""]];
var multiRobotB: MultiSkilledRobot = ["trimmer", ["trimming", "edging"]];
let nameA: string, numberB: number, nameB: string, skillB: string;
let robotAInfo: (number | string)[];
let multiSkillB: string[], nameMB: string, primarySkillB: string, secondarySkillB: string;
let multiRobotAInfo: (string | string[])[];
[, nameA = "helloNoName"] = robotA;
[, nameB = "helloNoName"] = getRobotB();
[, nameB = "helloNoName"] = [2, "trimmer", "trimming"];
[, multiSkillB = []] = multiRobotB;
[, multiSkillB = []] = getMultiRobotB();
[, multiSkillB = []] = ["roomba", ["vaccum", "mopping"]];
[numberB = -1] = robotB;
[numberB = -1] = getRobotB();
[numberB = -1] = [2, "trimmer", "trimming"];
[nameMB = "helloNoName"] = multiRobotB;
[nameMB = "helloNoName"] = getMultiRobotB();
[nameMB = "helloNoName"] = ["trimmer", ["trimming", "edging"]];
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = robotB;
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = getRobotB();
[numberB = -1, nameB = "helloNoName", skillB = "noSkill"] = [2, "trimmer", "trimming"];
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = multiRobotB;
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] = getMultiRobotB();
[nameMB = "helloNoName", [primarySkillB = "noSkill", secondarySkillB = "noSkill"] = []] =
["trimmer", ["trimming", "edging"]];
[numberB = -1, ...robotAInfo] = robotB;
[numberB = -1, ...robotAInfo] = getRobotB();
[numberB = -1, ...robotAInfo] = <Robot>[2, "trimmer", "trimming"];
if (nameA == nameB) {
console.log(skillB);
}
function getRobotB() {
return robotB;
}
function getMultiRobotB() {
return multiRobotB;
}

View File

@@ -0,0 +1,20 @@
// @sourcemap: true
interface Robot {
name: string;
skill: string;
}
declare var console: {
log(msg: string): void;
}
var hello = "hello";
var robotA: Robot = { name: "mower", skill: "mowing" };
var robotB: Robot = { name: "trimmer", skill: "trimming" };
var { name: nameA = "<NoName>" } = robotA;
var { name: nameB = "<NoName>", skill: skillB = "<skillUnspecified>" } = robotB;
var { name: nameC = "<NoName>", skill: skillC = "<skillUnspecified>" } = { name: "Edger", skill: "cutting edges" };
if (nameA == nameB) {
console.log(skillB);
}
else {
console.log(nameC);
}

View File

@@ -0,0 +1,24 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary: string;
secondary: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
var { skills: { primary: primaryA, secondary: secondaryA } } = robotA;
var { name: nameB, skills: { primary: primaryB, secondary: secondaryB } } = robotB;
var { name: nameC, skills: { primary: primaryB, secondary: secondaryB } } = { name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
if (nameB == nameB) {
console.log(nameC);
}
else {
console.log(nameC);
}

View File

@@ -0,0 +1,41 @@
// @sourcemap: true
declare var console: {
log(msg: string): void;
}
interface Robot {
name: string;
skills: {
primary?: string;
secondary?: string;
};
}
var robotA: Robot = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
var robotB: Robot = { name: "trimmer", skills: { primary: "trimming", secondary: "edging" } };
var {
skills: {
primary: primaryA = "noSkill",
secondary: secondaryA = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotA;
var {
name: nameB = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = robotB;
var {
name: nameC = "noNameSpecified",
skills: {
primary: primaryB = "noSkill",
secondary: secondaryB = "noSkill"
} = { primary: "noSkill", secondary: "noSkill" }
} = <Robot>{ name: "Edger", skills: { primary: "edging", secondary: "branch trimming" } };
if (nameB == nameB) {
console.log(nameC);
}
else {
console.log(nameC);
}

View File

@@ -75,7 +75,6 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike<number>) {
return typedArrays;
}
/*
function CreateTypedArraysOf(obj) {
var typedArrays = [];
typedArrays[0] = Int8Array.of(...obj);
@@ -90,7 +89,6 @@ function CreateTypedArraysOf(obj) {
return typedArrays;
}
*/
function CreateTypedArraysOf2() {
var typedArrays = [];

View File

@@ -0,0 +1,94 @@
// @target: ES6
function CheckAssignability() {
let arr_Int8Array = new Int8Array(1);
let arr_Uint8Array = new Uint8Array(1);
let arr_Int16Array = new Int16Array(1);
let arr_Uint16Array = new Uint16Array(1);
let arr_Int32Array = new Int32Array(1);
let arr_Uint32Array = new Uint32Array(1);
let arr_Float32Array = new Float32Array(1);
let arr_Float64Array = new Float64Array(1);
let arr_Uint8ClampedArray = new Uint8ClampedArray(1);
arr_Int8Array = arr_Int8Array;
arr_Int8Array = arr_Uint8Array;
arr_Int8Array = arr_Int16Array;
arr_Int8Array = arr_Uint16Array;
arr_Int8Array = arr_Int32Array;
arr_Int8Array = arr_Uint32Array;
arr_Int8Array = arr_Float32Array;
arr_Int8Array = arr_Float64Array;
arr_Int8Array = arr_Uint8ClampedArray;
arr_Uint8Array = arr_Int8Array;
arr_Uint8Array = arr_Uint8Array;
arr_Uint8Array = arr_Int16Array;
arr_Uint8Array = arr_Uint16Array;
arr_Uint8Array = arr_Int32Array;
arr_Uint8Array = arr_Uint32Array;
arr_Uint8Array = arr_Float32Array;
arr_Uint8Array = arr_Float64Array;
arr_Uint8Array = arr_Uint8ClampedArray;
arr_Int16Array = arr_Int8Array;
arr_Int16Array = arr_Uint8Array;
arr_Int16Array = arr_Int16Array;
arr_Int16Array = arr_Uint16Array;
arr_Int16Array = arr_Int32Array;
arr_Int16Array = arr_Uint32Array;
arr_Int16Array = arr_Float32Array;
arr_Int16Array = arr_Float64Array;
arr_Int16Array = arr_Uint8ClampedArray;
arr_Uint16Array = arr_Int8Array;
arr_Uint16Array = arr_Uint8Array;
arr_Uint16Array = arr_Int16Array;
arr_Uint16Array = arr_Uint16Array;
arr_Uint16Array = arr_Int32Array;
arr_Uint16Array = arr_Uint32Array;
arr_Uint16Array = arr_Float32Array;
arr_Uint16Array = arr_Float64Array;
arr_Uint16Array = arr_Uint8ClampedArray;
arr_Int32Array = arr_Int8Array;
arr_Int32Array = arr_Uint8Array;
arr_Int32Array = arr_Int16Array;
arr_Int32Array = arr_Uint16Array;
arr_Int32Array = arr_Int32Array;
arr_Int32Array = arr_Uint32Array;
arr_Int32Array = arr_Float32Array;
arr_Int32Array = arr_Float64Array;
arr_Int32Array = arr_Uint8ClampedArray;
arr_Float32Array = arr_Int8Array;
arr_Float32Array = arr_Uint8Array;
arr_Float32Array = arr_Int16Array;
arr_Float32Array = arr_Uint16Array;
arr_Float32Array = arr_Int32Array;
arr_Float32Array = arr_Uint32Array;
arr_Float32Array = arr_Float32Array;
arr_Float32Array = arr_Float64Array;
arr_Float32Array = arr_Uint8ClampedArray;
arr_Float64Array = arr_Int8Array;
arr_Float64Array = arr_Uint8Array;
arr_Float64Array = arr_Int16Array;
arr_Float64Array = arr_Uint16Array;
arr_Float64Array = arr_Int32Array;
arr_Float64Array = arr_Uint32Array;
arr_Float64Array = arr_Float32Array;
arr_Float64Array = arr_Float64Array;
arr_Float64Array = arr_Uint8ClampedArray;
arr_Uint8ClampedArray = arr_Int8Array;
arr_Uint8ClampedArray = arr_Uint8Array;
arr_Uint8ClampedArray = arr_Int16Array;
arr_Uint8ClampedArray = arr_Uint16Array;
arr_Uint8ClampedArray = arr_Int32Array;
arr_Uint8ClampedArray = arr_Uint32Array;
arr_Uint8ClampedArray = arr_Float32Array;
arr_Uint8ClampedArray = arr_Float64Array;
arr_Uint8ClampedArray = arr_Uint8ClampedArray;
}