gpt4 book ai didi

typescript - 从联合类型 typescript 生成字符串数组

转载 作者:行者123 更新时间:2023-12-04 00:50:52 24 4
gpt4 key购买 nike

大家好,我正在寻找一种从联合 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 数组,我们可以获得它的联合类型。例如-

const gridClassKeys = ['root', 'container'] as const

// "root" | "container"
type GridClassKey = typeof gridClassKeys[number]
Playground
请注意,我们必须使用 const assertions在声明数组时(数组将是只读元组,因此是固定键)

关于typescript - 从联合类型 typescript 生成字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66751035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com