在 TypeScript 中,我想比较两个包含枚举值的变量:
enum E {
A,
B
}
let e1: E = E.A
let e2: E = E.B
if (e1 === e2) {
console.log("equal")
}
在使用 tsc
(v2.0.3)编译时,我得到以下错误:
TS2365: 运算符’= = =’不能应用于‘ E.A’和‘ E.B’类型。
==
、 !==
和 !=
也是如此。
我试图添加 const
关键字,但似乎没有效果。
类型脚本规范表示:
4.19.3 < 、 > 、 < = 、 > = 、 = = 、 = = 、 ! = 、 = = = 和! = = 运算符
这些运算符要求将一个或两个操作数类型赋值给另一个操作数类型。结果始终是布尔原语类型。
这(我认为)解释了这个错误。但是我怎样才能避免这个错误呢?
边注
我在 原子打字稿中使用 Atom 编辑器,在我的编辑器中没有任何错误/警告。但是当我在同一个目录中运行 tsc
时,我会得到上面的错误。我认为他们应该使用相同的 tsconfig.json
文件,但显然情况并非如此。