【发布时间】:2019-04-07 14:15:37
【问题描述】:
是否可以创建一个具有两个值的枚举,当一个与! 运算符一起使用时返回另一个值?我不知道这是否有意义,所以这就是我想要的,但有代码:
enum MyEnum {
FirstValue,
SecondValue
}
!MyEnum.FirstValue => MyEnum.SecondValue
有什么办法吗?
【问题讨论】:
标签: javascript typescript enums
是否可以创建一个具有两个值的枚举,当一个与! 运算符一起使用时返回另一个值?我不知道这是否有意义,所以这就是我想要的,但有代码:
enum MyEnum {
FirstValue,
SecondValue
}
!MyEnum.FirstValue => MyEnum.SecondValue
有什么办法吗?
【问题讨论】:
标签: javascript typescript enums
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
【讨论】: