You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:39:03