You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中?.可选链运算符是什么含义?对应示例代码如何理解?

TypeScript 可选链代码含义说明

你贴的代码使用了 ECMAScript 2020 及以上版本支持、TypeScript 原生兼容的可选链运算符 ?.,核心作用是避免访问空值的深层属性时抛出 TypeError。

完整执行逻辑

  • 第一步先校验data是否为null或undefined:如果是,整个表达式直接短路返回undefined,不会继续访问后续属性
  • 若data不为空,继续校验data.resources是否为null或undefined:如果是,同样短路返回undefined
  • 若data.resources不为空,最终取data.resources['FAQs']的值赋值给faq

这里用方括号语法访问['FAQs']和点属性写法效果完全一致,等价于data?.resources?.FAQs。

你的猜测正误修正

你的理解整体方向对,但有两个细节需要调整:

  1. 短路时返回值是undefined,不是null或false,只有对应属性本身被主动赋值为null/false时,才会返回对应值
  2. 不需要提前判断属性是否「存在」:只要上层对象不为空,哪怕resources本身没有FAQs属性,也会正常返回undefined,不会抛报错

内容的提问来源于stack exchange,提问作者Yashvi-Mehta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 07:24:04