Путь Фейли это хорошо.Вы также можете использовать значения по умолчанию при деструктурировании:
function test(label, data) {
// 1 -----------------------------vvvvv
let [{type = null, message = null} = {}] = data;
// 2 -----^^^^^^^---------^^^^^^^
console.log(label, type, message);
}
test("test1: ", []);
test("test2: ", [{type: "t"}]);
test("test3: ", [{type: "t", message: "m"}]);
Это работает, потому что если data.length
равно 0
, data[0]
равно undefined
, и, таким образом, запускает использование значения по умолчанию {}
(1) длячасть массива этого;в пределах части объекта мы используем null
(2) для обработки любых пропущенных значений в объекте.