javascript - 相反的枚举值 TypeScript
问题描述
是否可以使用两个值创建一个枚举,当一个与!
运算符一起使用时返回另一个值?我不知道这是否有意义,所以这就是我想要的,但有代码:
enum MyEnum {
FirstValue,
SecondValue
}
!MyEnum.FirstValue => MyEnum.SecondValue
有没有办法做到这一点?
解决方案
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
推荐阅读
- javascript - jqGrid没有在ajax发布请求上重新加载/刷新
- javascript - 弹性 APM RUM 缺少嵌套跨度
- node.js - 如何使用 Firebase 身份验证通过 NodeJS 后端进行 Android 应用身份验证
- python - matplotlib 从二维数组直接映射到图像 RGB 数据
- postman - Postman - 如何替换 JSON 响应中所有特定属性的值,以便稍后将其用作另一个请求的正文
- tinymce - 活动编辑器中的可点击链接
- c# - 有没有一种简单的方法可以让 WinForms 应用程序中的所有文本框响应某些键盘快捷键?
- java - 在单元测试中的 Java 中,使用 Mockito,如何模拟对 XML DocumentBuilder 的调用,使其不返回 FileNotFoundException
- postgresql - 运行查询时出现语法错误:“在“\”或附近出现语法错误”
- proxy - http-proxy 到 cloudfront 导致 403 错误