在一个界面中,我有10多个(可选)成员,其中大多数都有一组确定的可能值,所以我想为它们使用枚举。然而,这需要定义至少10个新的枚举类型,只有很少的成员(并且只使用一次),所以我想直接在界面中定义枚举。因此,而不是:
export interface Options {
option1?: bool | Option1Enum;
option2?: bool | Option2Enum;
option3?: bool | Option3Enum;
option4?: bool | Option4Enum;
option5?: bool | Option5Enum;
}
我想要一些隐含的枚举,比如说:
export interface Options {
option1?: bool | { option11, option12 };
option2?: bool | { option21, option22 };
option3?: bool | { option31, option32, option33 };
option4?: bool | { option41, option42 };
option5?: bool | { option51 };
}
不编译。有没有办法在Typescript中做这种枚举声明?
在其他langugages中,这是可能的,例如在C ++中:
class Options {
public:
enum { value1, value2, } enumMember = value1;
};
答案 0 :(得分:1)
一种可能的解决方案似乎是字符串:
export interface Options {
option1?: bool | "option11" | "option12";
option2?: bool | "option21" | "option22";
option3?: bool | "option31" | "option32" | "option33";
option4?: bool | "option41" | "option42";
option5?: bool | "option51";
}
转换器确保只能分配这些值,这基本上就像枚举行为一样。