Uncaught TypeError: Невозможно деструктурировать свойство `name` из 'undefined' или 'null' - PullRequest
0 голосов
/ 18 февраля 2019

Ошибка выдает деструктуризацию объекта в случае пропуска нулевого объекта

function test ({name= 'empty'}={}) {
  console.log(name)
}
test(null);

Uncaught TypeError: Невозможно уничтожить свойство name из 'undefined' или 'null'.при тестировании (: 1: 15) при: 1: 1

1 Ответ

0 голосов
/ 18 февраля 2019

См. документы :

Параметры функции по умолчанию позволяют инициализировать именованные параметры со значениями по умолчанию, если значение не передано или не определено.

Другими словами, параметр по умолчанию будет не назначаться, если передано null:

function fn(arg = 'foo') {
  console.log(arg);
}
fn(null);

Вместо этого уничтожить в первой строке функции:

function test (arg) {
  const { name= 'empty' } = arg || {};
  console.log(name)
}
test(null);
...