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

TypeScript中能否定义二选一类型别名?如何避免类型重复书写?

在TypeScript中复用number | Date联合类型的方法

当然可以,最直接的方式就是用TypeScript的**类型别名(Type Alias)**来定义这个联合类型,完全实现你想要的写法,彻底避免重复书写number | Date:

// 定义自定义联合类型
type NumberOrDate = number | Date;

// 直接使用自定义类型作为函数返回值
function foo1(): NumberOrDate {
  return 123;
}

function foo2(): NumberOrDate {
  return new Date();
}

除了类型别名,还有几种遵循DRY原则的实现思路:

  • 如果这类函数属于同一业务模块,可以把自定义类型和函数放在同一个文件/模块中,统一维护类型定义,避免分散修改;
  • 如果你已经有一个变量是number | Date类型,也可以通过typeof提取它的类型来复用:
    const exampleValue: number | Date = 456;
    type NumberOrDate = typeof exampleValue;
    
    function foo3(): NumberOrDate {
      return new Date();
    }
    
  • 要是需要对这个联合类型做通用约束(比如后续扩展类型),可以把类型别名放在单独的类型定义文件中,供多个模块导入使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:13:26