TypeScript可选链,非空断言操作符,空值合并运算符等
// 可选链
interface Person {
name: string;
age?: number;
hobby?: {
name: string;
description?: string;
};
}
function getHobbyDescription(person: Person) {
return person.hobby?.description; // 使用可选链来安全地访问可能未定义的属性
}
// 非空断言操作符
function assertNonNull<T>(value: T | null | undefined): T {
return value!; // 断言value非空,但如果value为null或undefined会抛出错误
}
// 空值合并操作符
function getDefaultValue<T>(value: T | null | undefined, defaultValue: T): T {
return value ?? defaultValue; // 当value为null或undefined时,返回defaultValue
}
// 示例使用
const person: Person = {
name: "Alice",
hobby: {
name: "Reading"
}
};
console.log(getHobbyDescription(person)); // 输出: undefined
console.log(assertNonNull(person.age)); // 抛出错误:value is null or undefined
console.log(getDefaultValue(person.age, 25)); // 输出: 25
这段代码展示了如何在TypeScript中使用可选链、非空断言操作符和空值合并操作符来处理可能为null或undefined的值。可选链允许你安全地访问嵌套对象的属性,而无需担心中间的任何属性是undefined;非空断言操作符用于断言一个值是非null和非undefined的,但要谨慎使用,因为如果断言错误,可能会在运行时抛出错误;空值合并操作符在左侧值为null或undefined时返回右侧的值。
评论已关闭