Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript多个枚举的类型_Typescript_Enums - Fatal编程技术网

Typescript多个枚举的类型

Typescript多个枚举的类型,typescript,enums,Typescript,Enums,我的应用程序中有多个枚举 enum HondaModels { Accord = 'Accord', ... } enum ToytaModels { Camry = 'Camry', ... } 在我的代码中,我检查传递给我的车型是本田还是丰田 我想声明一个类型,要么是HondaModels,要么是ToyotaModels 如果我尝试这个,我会得到一个错误 type modelTypes: HondaModels || ToyotaModels 有没有更好的方法可

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

enum HondaModels {
   Accord = 'Accord',
   ...
}
enum ToytaModels {
   Camry = 'Camry',
   ...
}
在我的代码中,我检查传递给我的车型是本田还是丰田

我想声明一个类型,要么是HondaModels,要么是ToyotaModels

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

 type modelTypes: HondaModels || ToyotaModels

有没有更好的方法可以让自定义类型成为多个枚举之一?

您有一个语法错误

洪达莫代尔群岛{ Accord='Accord', } 托伊塔莫代尔群岛{ 凯美瑞=‘凯美瑞’, } 类型modelTypes=洪都拉斯的类型|托伊塔的类型 //然后像这样使用它 设abc:modelTypes=HondaModels
感谢改进的解决方案

您出现了语法错误

洪达莫代尔群岛{ Accord='Accord', } 托伊塔莫代尔群岛{ 凯美瑞=‘凯美瑞’, } 类型modelTypes=洪都拉斯的类型|托伊塔的类型 //然后像这样使用它 设abc:modelTypes=HondaModels
多亏了改进的解决方案

我还避免了字符串枚举。由于枚举是强类型的,所以使用有区别的联合要好得多

常量洪达莫代尔={ 雅阁:雅阁,, }作为常量; HondaModels类型=HondaModels类型[HondaModels类型键]; 常数丰田模型={ 凯美瑞:凯美瑞, }作为常量; ToyotaModels类型=ToyotaModels类型[keyof-typeof-ToyotaModels]; 类型modelTypes=HondaModels | ToyotaModels;
我也会避免使用字符串枚举。由于枚举是强类型的,所以使用有区别的联合要好得多

常量洪达莫代尔={ 雅阁:雅阁,, }作为常量; HondaModels类型=HondaModels类型[HondaModels类型键]; 常数丰田模型={ 凯美瑞:凯美瑞, }作为常量; ToyotaModels类型=ToyotaModels类型[keyof-typeof-ToyotaModels]; 类型modelTypes=HondaModels | ToyotaModels;
谢谢你的回复;实际上,我希望将abc存储为所有HondaModels或ToyotaModels,NissanModels等等,``让abc=HondaModels``这返回一个error@RaySaudlach,对于后者,您需要该联合是枚举类型的联合,而不是其成员:type modelTypes=typeof HondaModels | typeof ToytaModels谢谢您的回答;实际上,我希望将abc存储为所有HondaModels或ToyotaModels,NissanModels等等,``让abc=HondaModels``这返回一个error@RaySaudlach,对于后者,您需要该并集是枚举类型的并集,而不是它们的成员:type modelTypes=typeof HondaModels | typeof ToytaModels