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

如何在TypeScript中创建泛型类型的可选函数参数?

合并TypeScript的Ok函数实现可选参数与自动泛型推导

你可以通过泛型默认值结合可选参数的方式,将两个Ok函数合并为一个,完全满足需求:

首先保留原有类型定义:

type Ok<T> = { ok: true; value: T }

然后实现合并后的Ok函数:

const Ok = <T = undefined>(value?: T): Ok<T> => {
  return { ok: true, value };
}

验证效果

调用示例完全符合预期:

const emptyOk = Ok() // 类型自动推导为 Ok<undefined>
const okOne = Ok(1) // 类型自动推导为 Ok<number>
const okString = Ok("test") // 类型自动推导为 Ok<string>

实现逻辑说明

  • 泛型T设置默认值undefined:当调用时不传入参数,TS会自动使用这个默认值,对应Ok<undefined>的类型需求。
  • 参数value标记为可选(?: T):允许函数在无参数的情况下被调用,传入参数时,TS会自动将参数类型赋值给泛型T。
  • 返回值直接匹配Ok<T>类型:无需额外类型断言,TS会自动根据泛型T推导返回值的结构类型。

这个方案可以直接扩展到你模拟Rust Result类型的需求,后续只需定义Err<E>类型,并将Result<T, E>设为Ok<T> | Err<E>即可。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:52:50