Typescript не поддерживает оператор Элвиса "из коробки".
Итак, некоторые из ваших вариантов:
Вручную проверьте, есть ли свойство, например:
if(item && item.field && item.field.oneMoreField)
return item.field.oneMoreField;
// or
return item && item.field && item.field.oneMoreField;
Используйте прокси-объект:
function safe(obj) {
return new Proxy(obj, {
get: function(target, name) {
const result = target[name];
if (!!result) {
return (result instanceof Object)? safe(result) : result;
}
return safe({});
}
});
}
return safe(item.field.oneMoreField);
Или с библиотекой, такой как Lodash:
_.get(item, 'field.oneMoreField')