MST

星途 面试题库

面试题:TypeScript 可选链原理及应用

请解释 TypeScript 中可选链(?.)运算符的原理,并举例说明在对象属性访问和函数调用场景下如何使用它来避免空值错误。
33.2万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

可选链(?.)运算符原理

可选链(?.)运算符是一种 JavaScript 和 TypeScript 中的操作符,用于在访问对象属性或调用对象方法时,若对象为 nullundefined,不会抛出错误,而是返回 undefined。它会在链式调用中,一旦遇到 nullundefined 值,就停止后续的链式操作并返回 undefined

对象属性访问场景示例

interface User {
  address?: {
    city?: string;
  };
}

const user: User | undefined = undefined;
// 使用可选链操作符访问深层属性
const city = user?.address?.city; 
console.log(city); 

在上述示例中,user 可能是 undefined,如果直接写 user.address.city 会抛出错误。使用 ?. 后,若 userundefined,表达式直接返回 undefined,不会尝试访问不存在的 addresscity 属性,从而避免错误。

函数调用场景示例

interface User {
  getName?: () => string;
}

const user: User | undefined = undefined;
// 使用可选链操作符调用可能不存在的函数
const name = user?.getName?.(); 
console.log(name); 

这里 user 可能是 undefinedgetName 方法也可能不存在。使用 ?. 操作符,若 userundefined 或者 getName 不存在,表达式直接返回 undefined,不会尝试调用不存在的函数,避免了运行时错误。