Ваш код выглядит следующим образом после перехода :
var obj = { a: null };
var _obj$a = obj.a;
_obj$a = _obj$a === void 0 ? {} : _obj$a;
var b = _obj$a.b,
c = _obj$a.c;
Здесь _obj$a
- временная переменная, ссылающаяся на obj.a
. Если указано значение по умолчанию, оно будет проверять это значение только против void 0
(или undefined
), а не против null
Вы можете все еще делать это, используя деструктуризацию. Но традиционные проверки null
и undefined
гораздо проще понять.
let obj = { a: null },
a = obj.a,
b, c;
if (typeof a !== "undefined" && a !== null) {
b = obj.a.b;
c = obj.a.b;
}