乐闻世界logo
搜索文章和话题

How optional chaining works in TypeScript.

14 小时前提问
14 小时前修改
浏览次数0

1个答案

1

在TypeScript中,可选链(Optional Chaining)是一种语法,它允许开发者在访问一个对象的多层嵌套属性时,能够安全地处理中间某些属性可能不存在的情况。这意味着如果在链式调用中的任何一个部分是null或undefined,整个表达式的结果就会短路并返回undefined,而不是抛出一个错误。

可选链使用问号和点?.来标记。这个操作符可以用在三个地方:

  1. 对象属性访问:比如obj?.prop
  2. 数组索引访问:比如arr?.[index]
  3. 函数或方法调用:比如func?.()

例子说明:

假设我们有一个学生对象,这个对象包含了一些个人信息和一个嵌套的学校对象,学校对象包含名称和地址。我们想要安全地访问学生的学校地址,但是并不确定每个学生对象中是否都含有学校对象。

typescript
type Student = { name: string; age: number; school?: { name: string; address?: string; }; }; const student: Student = { name: "Alice", age: 20, school: { name: "Sunshine High" } }; // 使用可选链接安全访问学校地址 console.log(student.school?.address);

在没有可选链之前,我们需要检查school是否存在,然后再访问address属性:

typescript
if (student.school) { console.log(student.school.address); } else { console.log(undefined); }

但是使用可选链,这一系列的校验可以简化为一行代码:

typescript
console.log(student.school?.address);

这样,如果school对象不存在,或者school对象不存在address属性,表达式的结果都会是undefined,并且不会抛出错误。

可选链提升了代码的可读性和健壮性,使得开发者可以更加自信地处理嵌套对象结构。

2024年11月29日 09:27 回复

你的答案