В TypeScript я хочу сравнить две переменные, содержащие значения enum. Здесь мой минимальный пример кода:
enum E {
A,
B
}
let e1: E = E.A
let e2: E = E.B
if (e1 === e2) {
console.log("equal")
}
При компиляции с tsc
(v 2.0.3) я получаю следующую ошибку:
TS2365: Оператор '===' не может применяться к типам "E.A" и "E.B".
То же самое с ==
, !==
и !=
.
Я попытался добавить ключевое слово const
, но это, кажется, не имеет никакого эффекта.
TypeScript spec говорит следующее:
4.19.3 Операторы <, > , < =, > =, ==,! =, === и и == ==
Эти операторы требуют, чтобы один или оба типа операндов были назначены другому. Результат всегда имеет булевский примитивный тип.
Какой (я думаю) объясняет ошибку. Но как я могу обойти это?
Боковое примечание
Я использую редактор Atom с atom-typescript, и я не получаю никаких ошибок/предупреждений в моем редакторе. Но когда я запускаю tsc
в том же каталоге, я получаю ошибку выше. Я думал, что они должны использовать один и тот же файл tsconfig.json
, но, по-видимому, это не так.