try-catch
работает для runtime
ошибок, перехвата исключений или ошибок, которые вы выдавали явно. Таким образом, при деструктурировании не возникает такая ошибка, когда соответствующий ключ не найден. Чтобы проверить существование, вам нужно явно создать для него проверку. Как то так,
let obj = {test : "test"}
let { test, asdf } = obj
if(test){
console.log('worked');
} else {
console.log('not worked');
}
if(asdf){
console.log('worked');
} else {
console.log('not worked');
}
Это потому, что деструктуризация работает так же, как мы присваиваем значение объекта другому значению, например,
let obj = {test : "test"}
var test = obj.test;
var asdf = obj.asdf;
Здесь, выполнение obj.asdf
даст вам undefined
в asdf
и не выдает никаких исключений. Таким образом, вы не можете использовать try-catch
для этого.