是否有可能使用两个值进行枚举,当一个与!
运算符一起使用时返回另一个值?我不知道这是否有意义,所以这是我想要的,但代码:
enum MyEnum {
FirstValue,
SecondValue
}
!MyEnum.FirstValue => MyEnum.SecondValue
有没有办法做到这一点?
enum MyEnum {
FirstValue = 1,
SecondValue = ~FirstValue
}
您可以在数字枚举上使用XOR。要反转,只需使用~
。
~MyEnum.FirstValue === MyEnum.SecondValue
~~MyEnum.FirstValue === MyEnum.FirstValue
或者,您可以使用查找对象:
enum MyEnum { FirstValue = 1; SecondValue = 2 }
const invert = {
[MyEnum.FirstValue]: MyEnum.SecondValue,
[MyEnum.SecondValue]: MyEnum.FirstValue
};
invert[MyEnum.FurstValue] === MyEnum.SecondValue