解构数组
Typescript
数组解构和JavaScript
类似
let input = [1, 2];
let [first, second, three] = input;
console.log(first); // 输出 1
console.log(second); // 输出 2
console.log(three); // 输出 undefined
可以在数组里使用...
语法创建剩余变量:
let [first, ...rest] = [1, 2, 3, 4];
console.log(first); // 输出 1
console.log(rest); // 输出 [ 2, 3, 4 ]
你可以忽略你不关心的元素
let [, second, , fourth] = [1, 2, 3, 4];
console.log(second); // 输出 2
console.log(fourth); // 输出 4
对象解构
Typescript
对象解构和JavaScript
类似
let o = {
a: "foo",
b: 12,
c: "bar"
};
let { a, b } = o;
属性重命名
let o = {
a: "foo",
b: 12,
c: "bar"
};
let { a: newName1, b: newName2 } = o;
// 等价于下面两行
// let newName1 = o.a;
// let newName2 = o.b;
默认值
默认值可以让你在属性为
undefined
时使用缺省值
function keepWholeObject(wholeObject: { a: string, b?: number }) {
let { a, b = 1001 } = wholeObject;
}
现在,即使 b
为 undefined
, keepWholeObject
函数的变量 wholeObject
的属性 a
和b
都会有值。