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