我有一个包含符号作为键的对象。在这种情况下,我该如何破坏分配?
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(适用于打字稿用户)。
答案 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);