ES6: разрушение объекта с символами в качестве ключей - PullRequest
0 голосов
/ 02 января 2019

У меня есть объект, который содержит символы в качестве ключей.Как мне сделать деструктурирующее назначение в этом случае?

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

Мне нужно знать, если это возможно, я знаю очевидные и простые обходные пути, но я не об этом спрашиваю.

UPD.Достаточно забавно, я знал, как это сделать, но машинопись вызвала ошибки, и я подумал, что сделал что-то не так в JS. Вот исправление для пользователей машинописного текста.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Используйте тот же синтаксис для деструктурирования, что и для построения объекта:

let symbol = Symbol()
let obj = {[symbol]: 'foo'}
let { [symbol]: myValue } = obj;
console.log(myValue);
0 голосов
/ 02 января 2019

Используйте псевдоним (см. присвоение новым именам переменных ):

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

console.log(alias)
...