相反的枚举值是TypeScript

问题描述 投票:0回答:1

是否有可能使用两个值进行枚举,当一个与!运算符一起使用时返回另一个值?我不知道这是否有意义,所以这是我想要的,但代码:

enum MyEnum {
    FirstValue,
    SecondValue
}

!MyEnum.FirstValue => MyEnum.SecondValue

有没有办法做到这一点?

javascript typescript enums
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.