是否可以用两个值构成一个枚举,当一个值与!
运算符一起使用时,它返回另一个值?我不知道这是否有意义,所以这是我想要的但带有代码:
enum MyEnum {
FirstValue,
SecondValue
}
!MyEnum.FirstValue => MyEnum.SecondValue
有什么办法吗?
答案 0 :(得分:2)
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