2

来自 C# 的背景,空条件运算符允许您调用函数以避免可能的空引用异常,如下所示:

Func<int> someFunc = null;
int? someInteger = someFunc?.Invoke();
// someInteger == null

鉴于 Typescript 具有.?功能非常相似的“可选链接运算符”,我想知道是否有办法用同样简洁的代码来做同样的事情。我能想到的最好的方法是使用条件表达式:

let someFunc: (() => number) | undefined = undefined;
let someNumber = someFunc !== undefined ? someFunc() : undefined;

也许可以以某种方式使用applycall ?

4

1 回答 1

2

在 Typescript 中可以进行条件调用。在 3.7 中作为可选链接引入。

const a = () => {console.log('hey')}
const b = null
a?.()
b?.()

linter 可能会抱怨,但它会遵守并运行,看看这个操场

在此博客官方文档中阅读有关它的更多信息

于 2021-10-23T19:57:19.247 回答