Как я могу использовать вложенную деструктуризацию с объектами с повторно используемыми ключами? - PullRequest
0 голосов
/ 07 января 2019

У меня есть сообщение из моего веб-сокета:

var message = {
  spell: {
    symbol: 'my-spell'
  },
  target: {
    symbol: 'my-target'
  }
};

Я пытаюсь научиться деструктурированию, поэтому я написал следующий код:

let {
  spell: {
    spell_symbol: symbol
  },
  target: {
    target_symbol: symbol = null
  }
} = message;
console.log('spell symbol: ' + spell_symbol);
console.log('target symbol: ' + target_symbol);

Это дает мне ошибку:

SyntaxError: Identifier 'symbol' has already been declared

Я неправильно написал синтаксис, или вы не можете повторно использовать ключи типа symbol во вложенном объекте? Как мне извлечь target.symbol из message?

1 Ответ

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

Вы перепутали порядок имени свойства и целевого выражения, оно должно быть

const {
  spell: {
    symbol: spell_symbol
  },
  target: {
    symbol: target_symbol = null
  }
} = message;
console.log('spell symbol: ' + spell_symbol);
console.log('target symbol: ' + target_symbol);
...