我有这种类型:

type myCustomType = "aaa" | "bbb" | "ccc";

我需要将其转换为如下数组:

["aaa", "bbb", "ccc"]

我怎样才能在打字脚本中做到这一点?

推荐答案

类型在发出的代码中不存在——不能从type变为array.

但在某些情况下,你可以反过来.如果数组不是动态的(或者其值可以在初始化时由类型判断器完全确定),则可以声明数组as const(这样数组的类型是["aaa", "bbb", "ccc"]而不是string[]),然后通过从arr[number]映射其值来创建类型:

const arr = ["aaa", "bbb", "ccc"] as const;
type myCustomType = typeof arr[number];

下面是一个例子on the playground.

Typescript相关问答推荐

判断对象A中存在的对象B的键是否存在对象A中键的另一个数组值中

实现忽略了JSSOM中的doctor.body.innerHTML集

如何修复VueJS中的val类型不能赋给函数

类型脚本如何将嵌套的通用类型展开为父通用类型

使用前的组件渲染状态更新

无法从应用程序内的库导入组件NX Expo React Native

如何在TypeScript对象迭代中根据键推断值类型?

类型{...}的TypeScript参数不能赋给类型为never的参数''

将对象属性转换为InstanceType或原样的强类型方法

状态更新后未触发特定元素的Reaction CSS转换

一个打字类型可以实现一个接口吗?

如何使用模板继承从子组件填充基础组件的画布

为什么S struct 类型化(即鸭子类型化)需要非严格类型联合?

为什么上下文类型在`fn|curred(Fn)`的联合中不起作用?

tailwind css未被应用-react

基于未定义属性的条件属性

react 路由不响应参数

基于区分的联合键的回调参数缩小

TypeScript:如何使用泛型和子类型创建泛型默认函数?

Typescript泛型验证指定了keyof的所有键