ES6:使用符号作为键破坏对象

时间:2019-01-02 10:02:29

标签: javascript ecmascript-6 destructuring

我有一个包含符号作为键的对象。在这种情况下,我该如何破坏分配?

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

我需要知道是否可行,我确实知道明显而简单的解决方法,但这不是我要的。

UPD。有趣的是,我知道该怎么做,但打字稿会产生错误,我以为我在JS中做错了什么。 Here's a fix(适用于打字稿用户)。

2 个答案:

答案 0 :(得分:5)

使用别名(请参见assigning to new variable names

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

console.log(alias)

答案 1 :(得分:2)

使用与构造对象相同的语法进行构图:

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