ES6/ES2015对象解构和更改目标变量

36

我如何在对象解构时重命名目标?

const b = 6;
const test = { a: 1, b: 2 };
const {a, b as c} = test; // <-- `as` does not seem to be valid in ES6/ES2015
// a === 1
// b === 6
// c === 2

1
你尝试过使用{a, b: c} = test吗? - vaultah
3
{b as c} 是 ES6 的导入语法,它与解构赋值并不相同,这一点需要注意。如果混淆这两者的区别会导致对模块工作原理的困惑。 - loganfsmyth
相关:解构和重命名属性 - Bergi
1个回答

69

你可以像在这个MDN示例中所示,分配新的变量名。

var o = { p: 42, q: true };

// Assign new variable names
var { p: foo, q: bar } = o;

console.log(foo); // 42
console.log(bar); // true  

所以,在你的情况下,代码将是这样的。

const b = 6;
const test = { a: 1, b: 2 };
let { a, b: c } = test;
console.log(a, b, c); // 1 6 2

在线 Babel 演示


重命名过程能否使用当前变量名称并添加一些内容,比如转换函数。我想构建一个动态重命名的名称。 - vsync
@vsync 很遗憾,这是不可能的。 - thefourtheye

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接