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

如何从const数组构造其值的联合类型?

从const数组生成元素值的联合类型

你已经通过as const将数组声明为只读元组,这一步保留了每个元素的具体字面量类型,是实现需求的前提。要得到数组元素值的联合类型SpecialNumber,可以结合typeof操作符和索引访问类型来实现:

const specialNumbers = [1, 10, 20, 50] as const;

// 构造目标联合类型
type SpecialNumber = typeof specialNumbers[number];
// 此时 SpecialNumber 的类型等价于 1 | 10 | 20 | 50

原理说明

  • typeof specialNumbers会获取到数组的元组类型:readonly [1, 10, 20, 50]
  • 使用[number]索引该元组类型,TypeScript会自动返回元组中所有元素类型的联合集合

使用示例

按照你的需求场景,这样就能正确约束返回值类型:

const getSpecialNumber = (): SpecialNumber => {
  // 返回数组内的任意值都符合类型要求
  return 20;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 01:02:31