You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript解构赋值中处理命名冲突问题

在嵌套解构赋值中为重复属性设置别名的正确方式

当然可以实现!你想要的别名方案确实存在,只是语法和你设想的as不一样——在JavaScript解构赋值里,我们用**冒号:**来完成重命名,和你之前用Babel处理import命名冲突的思路本质是一致的,只是语法细节不同。

针对你的场景,正确的写法应该是这样:

const { a: { b: { c: c1 } }, a2: { b: { c: c2 } } } = { a: { b: { c: 10 } }, a2: { b: { c: 90 } } };
console.log(c1); // 输出 10
console.log(c2); // 输出 90

简单解释一下语法逻辑:

在解构赋值中,冒号的作用就是「把解构出的原属性值,赋值给你指定的新变量名」。比如你之前写的:

const { a: { b: { c } } } = { a: { b: { c: 10 } } };

其实是const { a: { b: { c: c } } } = ...的简写——当原属性名和你要赋值的变量名相同时,可以省略冒号和后面的变量名。而当你需要重命名时,只需要把后面的c换成你想要的新变量名(比如c1、c2)就可以了。

这样修改后,你就能同时获取到两个不同的c值,分别存储在c1和c2变量里啦。

内容的提问来源于stack exchange,提问作者scott1028

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:36:07