从联合类型文字脚本生成字符串数组 [英] Generate a string array from a union type typescript
本文介绍了从联合类型文字脚本生成字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,我正在寻找一种从联合打字类型获取数组的方法
这是现有类型:
export type GridClassKey =
| 'root'
| 'container'
| 'item'
| 'zeroMinWidth'
| 'direction-xs-column'
| 'direction-xs-column-reverse'
| 'direction-xs-row-reverse'
| 'wrap-xs-nowrap'
| 'wrap-xs-wrap-reverse'
| 'align-items-xs-center'
| 'align-items-xs-flex-start'
| 'align-items-xs-flex-end'
| 'align-items-xs-baseline'
| 'align-content-xs-center'
| 'align-content-xs-flex-start'
| 'align-content-xs-flex-end'
| 'align-content-xs-space-between'
| 'align-content-xs-space-around'
| 'justify-xs-center'
| 'justify-xs-flex-end'
| 'justify-xs-space-between'
| 'justify-xs-space-around'
| 'justify-xs-space-evenly'
| 'spacing-xs-1'
| 'spacing-xs-2'
| 'spacing-xs-3'
| 'spacing-xs-4'
| 'spacing-xs-5'
| 'spacing-xs-6'
| 'spacing-xs-7'
| 'spacing-xs-8'
| 'spacing-xs-9'
| 'spacing-xs-10'
| 'grid-xs-auto'
| 'grid-xs-true'
| 'grid-xs-1'
| 'grid-xs-2'
| 'grid-xs-3'
| 'grid-xs-4'
| 'grid-xs-5'
| 'grid-xs-6'
| 'grid-xs-7'
| 'grid-xs-8'
| 'grid-xs-9'
| 'grid-xs-10'
| 'grid-xs-11'
| 'grid-xs-12'
我想以编程方式从它获得一个真正的字符串数组,类似于:
['root','container', ...]
是否可以,因为GridClassKey是类型而不是值?
谢谢
推荐答案
我们不可能从类型创建数组,因为如果类型在运行时不存在,我们就不能在运行时汇编数组(@Ingo Bürk的评论)。但我们可以做相反的事情。如果我们有一个常量数组,我们就可以获得它的联合类型。例如-
const gridClassKeys = ['root', 'container'] as const
// "root" | "container"
type GridClassKey = typeof gridClassKeys[number]
请注意,声明数组时必须使用const assertions(数组将是只读元组,因此固定键)
这篇关于从联合类型文字脚本生成字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文