首页 > 解决方案 > 调用可能未定义函数的最短方法

问题描述

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

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

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

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

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

标签: typescriptoptional-chaining

解决方案


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

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

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

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


推荐阅读