小编典典

Typescript 是否支持 ?. 操作员?(而且,它叫什么?)

all

Typescript 目前(或是否有计划)支持安全导航操作符?.

IE:

var thing = foo?.bar
// same as:
var thing = (foo) ? foo.bar : null;

此外,该运算符是否有更通用的名称(谷歌很难找到)。


阅读 98

收藏
2022-03-13

共1个答案

小编典典

是的。 从 TypeScript 3.7(2019 年 11 月 5
发布)开始,支持此功能,称为 Optional Chaining

在其核心,可选链让我们编写代码,如果遇到 a nullor ,TypeScript
可以立即停止运行某些表达式undefined。可选链中的明星是 可选属性访问?.的新操作符。 __

有关更多详细信息,请参阅TypeScript 3.7
发行说明


在 3.7 版之前,TypeScript 不支持此功能,尽管早在 TypeScript 存储库的第 16
(可追溯到 2014 年)中就提出了要求。

至于 如何称呼这个运营商 ,似乎还没有达成共识。除了“可选链接”(这也是它在 JavaScript
的名称)之外,还有一些其他示例:

  • CoffeeScript 将其称为 存在运算符 (特别是存在运算符的“访问器变体”):

存在运算符的访问器变体?.可用于吸收属性链中的空引用。.在基值可能为 nullundefined
的情况下,使用它代替点访问器。

仅当操作数的计算结果为非 null 时,空条件运算符才将成员访问?.、或元素访问、操作应用于其操作数;?[]否则,它返回null

可能还有很多其他的例子。

2022-03-13