Как правильно проверить существование вложенного свойства JS?

Как правильно проверять вложенные свойства объектов на наличие, которых пока нет?

let obj = {};

if (obj.prop.subprop) {
  console.log('ok');
}

obj = { 
  prop : "one",
  prop : "two",
  prop : {
    subprop : "subone"
         }
}


Ответы (1 шт):

Автор решения: Igor

Optional chaining

let obj = {};

console.log(obj.prop?.subprop);
if (obj.prop?.subprop) {
  console.log('ok');
} else {
  console.log('not ok');
}

obj = {
  prop: {
    subprop: "subone"
  },
}

console.log(obj.prop?.subprop);
if (obj.prop?.subprop) {
  console.log('ok');
} else {
  console.log('not ok');
}

→ Ссылка