Typescript多个枚举的类型

时间:2020-05-24 19:12:38

标签: typescript enums

我的应用程序中有多个枚举

enum HondaModels {
   Accord = 'Accord',
   ...
}
enum ToytaModels {
   Camry = 'Camry',
   ...
}

在我的代码中,我检查传递给我的汽车型号是本田还是丰田。

我想声明一个HondaModels或ToyotaModels

类型。

如果我尝试这样做,我会得到一个错误

 type modelTypes: HondaModels || ToyotaModels

是否有更好的方法来拥有多个枚举之一的自定义类型?

2 个答案:

答案 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;
相关问题