ES6:使用符号作为键来解构对象

5

我有一个包含符号作为键的对象。在这种情况下,我该如何进行解构赋值?

let symbol = Symbol()
let obj = {[symbol]: ''}
let { /* how do I create a variable here, that holds the value of [symbol] property? */ } = obj

我需要知道这是否可能,我知道显而易见和简单的解决方法,但这不是我要问的。

更新。有趣的是,我知道如何做到这一点,但typescript会出现错误,我以为在JS中做错了什么。这里提供了typescript用户的解决方案。

2个回答

9

使用别名(参见 分配新变量名称):

let symbol = Symbol()
let obj = { [symbol] : 'value'}
let { [symbol]: alias } = obj

console.log(alias)


1
有趣的是,我尝试过并且知道这是正确的,但由于 TypeScript 对此产生了错误,我以为自己做错了什么。 - Nurbol Alpysbayev
奇怪 - 它被 TypeScript 支持(文档 - Ori Drori
1
是的,但符号不适用于这种情况。 - Nurbol Alpysbayev

2

在解构对象时使用与构建对象相同的语法:

let symbol = Symbol()
let obj = {[symbol]: 'foo'}
let { [symbol]: myValue } = obj;
console.log(myValue);

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