TypeScript中如何实现类似C#空条件运算符的函数简洁调用?
你完全不需要借助apply、call方法实现该需求,TypeScript 原生的可选链语法已经支持直接调用可空函数,写法和 C# 的 null-conditional 运算符几乎一致,简洁度完全对齐:
let someFunc: (() => number) | undefined = undefined; // 直接使用 ?.() 调用可空函数即可 let someNumber = someFunc?.();
上面的写法和你写的三元表达式逻辑完全等价:当someFunc为null/undefined时,表达式直接返回undefined,不会触发函数调用,也不会抛出空引用异常。
如果函数需要传参,直接在括号内填写参数即可:
let sum: ((a: number, b: number) => number) | null = null; let result = sum?.(1, 2); // result 为 undefined
如果有绑定this的需求,也可以结合call/apply使用可选链,写法同样简洁:
// 绑定this场景下的写法 let someFunc: ((prefix: string) => string) | undefined = undefined; let callResult = someFunc?.call(this, 'test'); let applyResult = someFunc?.apply(this, ['test']);
内容的提问来源于stack exchange,提问作者Xerillio
相关产品推荐
相关产品推荐

