前端-dom-bom/(前端-dom-bom)Ts-(前端-dom-bom)Typescript/(前端-dom-bom)Js-(前端-dom-bom)JavaScript-ES-ECMAScript JS
梗概
- 这里以ts中解构的语法为例,实际上只是比js解构对象多了一个类型声明罢了
1. 解构对象并赋值给变量
let obj = {a:"hi",b:666};
let 名字1,名字2;
//其他代码
({a:名字1, b:名字2}: {a: string, b: number} = obj);1. 说明:
- 如果前面已经定义了用于接受的变量, 则必须要用
()括起来 - 花括号内的冒号用来重命名
- 花括号外的冒号用来指定类型
2. 定义变量并解构对象来初始化
let obj = {a:"hi",b:666};
let {a:名字1, b:名字2}: {a: string, b: number} = obj;1. 说明:
- 花括号内的冒号用来重命名
- 可省略
- 花括号外的冒号用来指定类型
- 可省略
2. 解构嵌套对象
const obj = {
A: 'value1',
inlineObj: {
B: {
c: 'value3'
},
b: 'value2'
}
};
// Object destructuring:
const { inlineObj: { B: {c},b } } = obj;
b; // 'value2'
c; // 'value3'1. 说明:
- 可以无限嵌套
运用可变(动态)键名解构:
const obj ={
A:'value1',
B:'value2'
}
const prop = 'A';
const { [prop]: name } = obj;
name; // 'value1'包装剩余属性成一个新对象
const obj={
A:'value1',
B:'value2',
C:'value3',
}
const {A,...rest} = obj
rest//{B:'value2' , C:'value3'}实际运用:
- 如果待解构对象都保存在一个数组中, 常搭配数组内置的
map()方法替换原数组的每个对象
实例
之一:对象解构数组
let arr = [1, 2, 3];
let {0 : first, [arr.length - 1] : last} = arr;
first // 1
last // 3