假设我们有以下声明:
interface Inf1 {
field: boolean | undefined;
}
interface Inf2 {
field: Inf1 | undefined
}
interface Inf3 {
field: Inf2 | undefined
}
function fun1(): Inf3 | undefined {
return {field: {field: {field: true}}};
}
我想检查是否fun1()等于true(或任何其他值)返回的对象中的第三嵌套字段。首先尝试是:
if (value.field.field.field) {
console.log('This code does not compile because nested `field` objects may be undefined.');
}
是什么原因导致编译错误,因为field中间的可能是undefined。
我需要编译此代码的目的是检查所有嵌套对象是否不是undefined:
let value = fun1();
if (
value &&
value.field &&
value.field.field &&
value.field.field.field
) {
console.log('This code is compiled successfully');
}
有没有一种方法可以“即时”检查中间的那些“字段”是否未定义?
守着一只汪
相关分类