如果我有2个枚举,并且我想基于2个枚举来声明一个新类型,有没有办法做到这一点?
export enum Actions {
A = 'a',
B = 'b',
C = 'c'
}
export enum Prefix {
X = 'x',
Y = 'y'
}
我想要一个由2个枚举组成的新类型
type AP = "ax" | "ay" | "bx" | "by" | "cx" | "cy"
答案 0 :(得分:0)
我刚刚看完问题,绝对没有事可做。
我看到了评论,但我不喜欢包含Not possible
等的句子。
我开始玩耍,并制作了一些值得分享的东西。下面的代码演示了枚举键的“动态”键入。我创建了一个将您的组合作为嵌套对象保存的类型。因此,您的类型值ab
将在“已键入” a.b
中表示为enum
。
只看代码,它应该使它变得清晰一些。
export enum Actions {
A = 'A',
B = 'B',
C = 'C'
}
export enum Prefix {
X = 'X',
Y = 'Y'
}
type actType = keyof typeof Actions
type preType = keyof typeof Prefix
type resultsArr = {[key1 in actType]: {[key2 in preType]: string}};
// structure of resultsArr:
/*
A: {
X: string, // holds 'AX'
Y: string // holds 'AY'
},
B: {
X: string, // holds 'BX'
Y: string // ...
},
C: {
X: string,
Y: string
}
*/
如果您能够在操作后产生这样的对象,则可能可以根据您的问题键入有用的内容。
然后可以轻松地将此类对象标准化为您拥有的字符串值。 您还必须对所有枚举进行硬编码并“手动”连接它们。
但是无论如何,我想分享.. 干杯。