要让TypeScript明白对象属性不能是未定义的,可以通过以下方式实现:
interface MyObject {
name: string;
age?: number; // 可选属性
}
const obj: MyObject = {
name: 'John',
age: 25
};
if (obj.age !== undefined) {
console.log(obj.age);
}
interface MyObject {
name: string;
age?: number; // 可选属性
}
const obj: MyObject = {
name: 'John',
age: 25
};
console.log(obj.age!); // 使用断言确保age属性存在且不为undefined
interface MyObject {
name: string;
age?: number; // 可选属性
}
function isAgeDefined(obj: MyObject): obj is MyObject {
return obj.age !== undefined;
}
const obj: MyObject = {
name: 'John',
age: 25
};
if (isAgeDefined(obj)) {
console.log(obj.age); // 在类型守卫的代码块中可以直接使用age属性
}
以上是让TypeScript明白对象属性不能是未定义的几种方法。在实际开发中,根据具体情况选择合适的方式来确保对象属性的定义和使用的正确性。
领取专属 10元无门槛券
手把手带您无忧上云