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

TypeScript 如何从数组取值推导类型,限制另一数组仅为原数组取值组合

TypeScript 实现方案
  • 第一步:先给原常量数组添加as const断言,让 TypeScript 可以识别到数组元素的具体字面量值,而不是宽泛的string类型
const frequencyOptions = ['Daily', 'Weekly', 'Monthly'] as const;
  • 第二步:从常量数组中提取元素的联合类型
// 此时 FrequencyOption 的类型等价于 'Daily' | 'Weekly' | 'Monthly'
type FrequencyOption = typeof frequencyOptions[number];
  • 第三步:给目标数组声明FrequencyOption[]类型即可
// 任意元素组合都合法,包括空数组
let frequencyValues: FrequencyOption[] = ['Daily', 'Weekly']; 
let emptyValues: FrequencyOption[] = [];
let allValues: FrequencyOption[] = ['Daily', 'Weekly', 'Monthly'];

如果写入不在frequencyOptions范围内的值,TypeScript 会直接抛出类型错误:

// 报错:类型"Yearly"不能分配给类型"FrequencyOption"
let errorValues: FrequencyOption[] = ['Daily', 'Yearly'];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:06:04