Как проверить ключ и значения внутри объекта, используя машинопись - PullRequest
3 голосов
/ 30 января 2020

Я попытался получить значение в объекте, используя машинопись, используя оператор ? . Но это выдает ошибку.

const data = {sample:{sample1:''hai'}}  

! оператор использовал свое рабочее отлично

Успешный случай


if(data.sample!['sample1']){
    console.log('hai')
}

?. Оператор использовал свою ошибку выброса

Ошибка Case

if(data.sample?.['sample1']){
    console.log('hai')
}

Как получить значение с помощью ?. operator

1 Ответ

3 голосов
/ 30 января 2020

Оператор ?. (он же необязательный оператор сцепления, он же оператор необязательного доступа к свойству, он же оператор Элвиса) был введен только в TypeScript 3.7 .

В TypeScript 3.7+ следующие код компилируется и выполняется без проблем:

const data = { sample: { sample1: 'hai' } };
console.log(data.sample?.['sample1']); 

Поскольку вы пометили свой вопрос с помощью , вам придется либо обновить версию TypeScript, либо вернуться к более явной проверка значений null или undefined.

...