我的应用程序中有多个枚举
enum HondaModels {
Accord = 'Accord',
...
}
enum ToytaModels {
Camry = 'Camry',
...
}
在我的代码中,我检查传递给我的汽车型号是本田还是丰田。
我想声明一个HondaModels或ToyotaModels
类型。如果我尝试这样做,我会得到一个错误
type modelTypes: HondaModels || ToyotaModels
是否有更好的方法来拥有多个枚举之一的自定义类型?
答案 0 :(得分:2)
您遇到语法错误
enum HondaModels {
Accord = 'Accord',
}
enum ToytaModels {
Camry = 'Camry',
}
type modelTypes = typeof HondaModels | typeof ToytaModels
// Then use it like this
let abc: modelTypes = HondaModels
感谢Aluan Haddad提供了改进的解决方案
答案 1 :(得分:2)
我还将避免使用String枚举。使用区分联合会好得多,因为枚举是强类型的。
const HondaModels = {
Accord: "Accord",
} as const;
type HondaModels = typeof HondaModels[keyof typeof HondaModels];
const ToyotaModels = {
Camry: "Camry",
} as const;
type ToyotaModels = typeof ToyotaModels[keyof typeof ToyotaModels];
type modelTypes = HondaModels | ToyotaModels;