说我有清单
const list = ['a', 'b', 'c']
是不是可以从这个值的联合类型派生出来的'a' | 'b' | 'c'?
我想要这个,因为我想定义只允许来自静态数组的值的类型.而且我还需要在运行时枚举这些值,所以我使用数组.
示例如何使用索引对象实现:
const list = ['a', 'b', 'c']
'a' | 'b' | 'c'
const list = ['a', 'b', 'c']
但我想知道没有这个索引地图是否可行.
我经常使用诸如
export type Stuff = 'something' | 'else'
export const AVAILABLE_STUFF: Stuff[] = ['something', 'else']
Run Code Online (Sandbox Code Playgroud)
这样我既可以使用 type Stuff,也可以根据需要迭代所有可用的东西。
这有效,但感觉像是重复了两次信息。而且您必须小心,因为更新Stuff或AVAILABLE_STUFF还需要更新其对应项。
有没有更好的方法来定义数组的类型,或者甚至在某种程度上使用数组来键入一些数据?