1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
// @lib: es5
// @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);
}
|