TypeScript/tests/cases/compiler/sourceMapValidationDestructuringVariableStatementNestedObjectBindingPatternWithDefaultValues.ts
2018-05-03 14:18:50 -07:00

42 lines
1.1 KiB
TypeScript

// @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);
}