可以使用可选链接运算符 ?.
来避免这个问题。可选链接运算符会在对象不为 null 或 undefined 时才会访问其属性。示例代码如下:
interface Person {
name?: string;
age?: number;
}
const person: Person | {} = { name: "Alice", age: 20 };
// 判断 person 是否为空对象
if (Object.keys(person).length === 0) {
console.log("person is an empty object");
} else {
console.log(person.name?.toUpperCase(), person.age);
}
上述代码中,为了模拟可能为空对象的类型,我们使用了 Person | {}
作为 person
变量的类型。在打印 person
的属性时,我们使用了可选链接运算符 ?.
来避免变量为空对象时的打字属性问题。同时,我们也使用了 Object.keys()
来判断变量是否为空对象。如果为空对象,我们会输出一条提示信息。
上一篇:变量的类型