【问题标题】:Opposite enum values TypeScript相反的枚举值 TypeScript
【发布时间】:2019-04-07 14:15:37
【问题描述】:

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

enum MyEnum {
    FirstValue,
    SecondValue
}

!MyEnum.FirstValue => MyEnum.SecondValue

有什么办法吗?

【问题讨论】:

    标签: javascript typescript enums


    【解决方案1】:
     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
    

    【讨论】:

    • 是否支持布尔值? Playground
    • 你只能使用带枚举的字符串,不能使用布尔值
    • @adiga 哎呀,我以为他们是支持的。
    猜你喜欢
    • 2021-10-21
    • 2018-10-18
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    相关资源
    最近更新 更多