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

TypeScript中如何将同类型字段对象的类型转换为数组类型?

解决方法

根据你的需求,分两种场景给出对应的类型转换方案:

1. 宽泛的字符串数组类型

如果只需要定义一个元素为eventType中任意值的数组,直接使用数组类型语法即可:

export type EventArrayType = eventType[];
// 也可以写成 Array<eventType>

这个类型表示数组的每个元素可以是"RAIN"、"SUN"或"CLOUDY"中的任意一个,数组长度不做限制。

2. 精确的元组类型(包含所有枚举值)

如果需要定义一个包含所有eventType成员、顺序与原event对象属性一致的固定数组,可以借助原对象的类型typeof event来构造:

export type EventExactTupleType = ReturnType<typeof Object.values<typeof event>>;

这个类型会被TypeScript推导为["RAIN", "SUN", "CLOUDY"],是固定长度、固定元素顺序的元组类型,完全匹配原对象的枚举值集合。

注意

如果严格只能依赖eventType(联合类型)而不能使用typeof event,则无法生成精确的元组类型——因为联合类型本身是无序的,TypeScript无法从联合类型反向推导出包含所有成员的固定数组结构,必须借助原对象的类型信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:43:23