我希望重用枚举中的某些值。 关于如何实现这种功能的任何建议。
enum someEnum {
a = 'Some String',
b = 2,
};
enum extendedEnum {
c = 'string',
b = someEnum.b
}
type someEnumType<T extends someEnum> = T extends someEnum.a ? string :
T extends someEnum.b ? number : never;
type extendedEnumType<T extends extendedEnum> =
T extends extendedEnum.c ? string: // Gives Error
T extends extendedEnum.b ? number : never; // Gives Error
答案 0 :(得分:6)
enum Color1 {
Red = "Red",
Green = "Green"
}
enum Color2 {
Yellow = "Yellow",
Blue = "Blue"
}
定义一个名为Colors的新类型:
type Colors = Color1 | Color2;
然后您可以按以下方式使用它:
public color: Colors;
ngOnInit(): void {
const Colors = { ...Color2, ...Color1 };
this.color = Colors.Red; // Colors.Green or Colors.Yellow or Colors.Blue
}
答案 1 :(得分:1)
您可以在类型中使用联合:
enum abc {
a = 1,
b = 2,
c = 3
}
enum def {
d = 4,
e = 5,
f = 6
}
type abcdef = abc | def;
let x: abcdef;
x = abc.a;
x = def.d;