可同时使用属性重命名和默认值,语法为{原始名:新名=默认值};嵌套解构同理;默认值仅对undefined或属性不存在生效,不触发null、''、0等falsy值。

可以同时使用属性重命名和默认值,语法上把重命名写在冒号左边、默认值写在等号右边,中间用冒号分隔,再整体放在大括号内。
基本组合写法
重命名和默认值不是互斥功能,而是可叠加的两个特性。关键在于结构顺序:先写原始属性名,再用冒号接新变量名,最后用等号设默认值。
-
正确写法:
const { originalProp: newVar = 'default' } = obj; -
错误写法:
const { originalProp = 'default': newVar } = obj;(语法报错)
嵌套对象中也适用
当要解构深层属性并重命名+设默认值时,嵌套解构的路径保持不变,只在最内层属性后加重命名和默认值。
用于 inference.sh 的 JavaScript/TypeScript SDK,可运行 AI 应用、构建代理、集成 150+ 模型。包名:@inferencesh/sdk(npm install),完整 TypeScript 支持。
- 例如:
const { user: { name: userName = '匿名用户', age: userAge = 0 } } = data; - 如果
data.user不存在,整个解构不会报错,userName和userAge就取默认值
常见易错点
注意三点:一是重命名必须显式写出原始属性名;二是默认值只对“该字段未定义”生效(即 undefined 或属性根本不存在),对 null、''、0 等 falsy 值不触发;三是重命名后的变量名不能与已有变量冲突。
- 比如
let name = '全局名'; const { name: myName = '默认' } = { };是合法的,myName会是'默认' - 但
const { name = '默认' } = { };中若外部已有name变量,会报错(重复声明)
实际应用示例
处理 API 返回数据时很实用:字段名不统一、部分字段可能缺失、又不想用冗长的逻辑判断。
const { title: articleTitle = '无标题', author: writer = '佚名', tags: tagList = [] } = apiResponse;- 哪怕
apiResponse没有tags字段,tagList也会是空数组,后续直接用tagList.map不会报错










