Typescript 多个枚举的类型

Ray*_*ach 4 enums typescript

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

enum HondaModels {
   Accord = 'Accord',
   ...
}
enum ToytaModels {
   Camry = 'Camry',
   ...
}
Run Code Online (Sandbox Code Playgroud)

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

我想声明一个类型,即 HondaModels 或 ToyotaModels

如果我尝试这个,我会收到错误

 type modelTypes: HondaModels || ToyotaModels
Run Code Online (Sandbox Code Playgroud)

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

drd*_*hbh 5

我也会避免使用字符串枚举。使用可区分联合要好得多,因为枚举是强类型的。

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;
Run Code Online (Sandbox Code Playgroud)