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

如何从TypeScript联合类型创建数组

从TypeScript联合类型生成对应数组的方法

方法一:共享数据源,避免重复定义

先定义包含所有目标值的数组,通过const断言锁定字面量类型,再推导联合类型,这样数组和类型共用同一套值,不会出现不一致:

const ArrayOfTemperatures = ['cold', 'warm', 'hot'] as const;
type Temperature = typeof ArrayOfTemperatures[number];

方法二:基于已有的联合类型生成类型安全的数组

如果已经存在定义好的联合类型,可以通过类型守卫确保数组值完全匹配类型:

type Temperature = 'cold' | 'warm' | 'hot';

// 类型守卫:验证值是否属于Temperature类型
const isTemperature = (val: string): val is Temperature => {
  return ['cold', 'warm', 'hot'].includes(val);
};

// 生成并验证数组类型
const ArrayOfTemperatures = ['cold', 'warm', 'hot'].filter(isTemperature) as Temperature[];

关键说明

TypeScript的类型信息在编译阶段会被擦除,无法直接从联合类型自动生成运行时数组。上述方法通过手动维护值集合,结合类型推导或类型守卫,尽可能减少重复代码并保证类型安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:55:36