function f(): unknown {
return {abc: "ABC"};
}
const a = f();
if (a && a instanceof Object && a.hasOwnProperty("abc")) {
console.log(a.abc);
}
У меня есть переменная a
, которая вначале имеет тип unknown
(> = TypeScript 3.0).
Я хочу использовать свойство abc
a
внутри оператора if, если , когда a
имеет свойство.
Однако, как показано на приведенном выше скриншоте кода VS, компилятор TypeScript выдает ошибку TS2339
, хотя я проверил a.hasOwnProperty("abc")
в условии if.
Свойство 'abc' не существует для типа 'объект'. TS (2339) * * тысяча двадцать одна
Я знаю, что могу обойти эту ошибку, приведя тип a
к any
, но это заставит компилятор игнорировать опечатки имен членов, и будет плохо, если в * 1026 будет много свойств и многое, что можно сделать с переменной a
.
Есть ли способ для компилятора TypeScript узнать, что a
имеет определенные свойства?