Предпочитаю деструктуризацию - уже существующая переменная - PullRequest
1 голос
/ 03 июля 2019

мой линтер доставляет мне проблемы с разрушением.

enter image description here


Когда я пытаюсь деструктурировать, это вызывает у меня ошибку, как в следующем фрагменте:

const data = {
  status: 'example',
};

let status = 'foo';

{
  status,
} = data;

console.log(status);

Есть ли способы использовать деструктуризацию, когда переменная уже существует?


Использование let снова:

const data = {
  status: 'example',
};

let status = 'foo';

let {
  status,
} = data;

console.log(status);

1 Ответ

9 голосов
/ 03 июля 2019

Добавить скобки вокруг деструктуризации

Из документации: Присвоение без декларации

Скобки (...) вокруг оператора присваивания требуются при использовании литерального деструктурирования объекта без объявления.

{a, b} = {a: 1, b: 2} не является допустимым автономным синтаксисом, поскольку {a, b} в левой части считается блоком, а не литералом объекта.

Однако, ({a, b} = {a: 1, b: 2}) действителен, как и var {a, b} = {a: 1, b: 2}

Вашему (...) выражению должна предшествовать точка с запятой, или оно может использоваться для выполнения функции в предыдущей строке.

const data = {
  status: 'example',
};

let status = 'foo';

({ status } = data);

console.log(status);
...