Деструктуризация объекта с параметрами по умолчанию в Node.js 8.9.4

1

У меня возникла проблема с запуском этого фрагмента кода, когда он был сохранен в текстовый файл и запущен с узлом в командной строке.

let x;

{k1: x = null } = {k1: "Hello"};
console.log(x);

Выполнение этого приведет к ошибке при неправильном действии оператора присваивания.

Однако, когда код напрямую вводится в интерпретатор узла, он распечатает "Hello" что и я ожидаю.

Кто-нибудь знает, что это может быть? Идея состоит в том, чтобы построить класс со значениями по умолчанию и обновить класс с использованием того же метода, повторно используя текущие значения, когда чего-то не хватает.

Теги:
object
destructuring
default-parameters

1 ответ

1
Лучший ответ

Вы должны использовать объявление назначения wihout

let x;
({k1: x = null } = {k1: "Hello"});

или просто:

let { k1: x = null } = { k1: "Hello" };

Круглые фигурные скобки (...) вокруг оператора присваивания - это требуемый синтаксис при использовании назначения деструкции объектного литерала без объявления.

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

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

ПРИМЕЧАНИЕ. Вашему выражению (...) должно предшествовать точка с запятой или она может использоваться для выполнения функции в предыдущей строке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню