调用可能未定义函数的最短方法

Shortest way to call possibly undefined function

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

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

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

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

也许 apply and call 可以以某种方式利用?

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

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

linter 可能会抱怨,但它会遵守并运行,see this playground

在此 blog or in the offical docs

中阅读更多相关信息