À la Machine, je veux comparer deux variables contenant les valeurs de l'enum. Voici mon code minimal exemple:
enum E {
A,
B
}
let e1: E = E.A
let e2: E = E.B
if (e1 === e2) {
console.log("equal")
}
Lors de la compilation avec tsc
(v 2.0.3), je reçois le message d'erreur suivant:
TS2365: l'Opérateur '===' ne peut pas être appliquée aux types "E. A" et "E. B".
Même avec ==
, !==
et !=
.
J'ai essayé d'ajouter l' const
mot clé, mais qui ne semble pas avoir d'effet.
Le Tapuscrit spec dit ce qui suit:
4.19.3 L'<, >, <=, >=, ==, !=, ===, et !== les opérateurs
Ces exploitants ont besoin de l'un ou des deux opérandes de types à être cédés à l'autre. Le résultat est toujours le Booléen de type primitif.
Qui (je pense) explique l'erreur. Mais comment puis-je obtenir autour d'elle?
Note de côté
Je suis l'aide de l'Atome de l'éditeur avec l'atome-tapuscrit, et je ne reçois pas toutes les erreurs/avertissements dans mon éditeur. Mais lorsque j'exécute tsc
dans le même répertoire que je reçois le message d'erreur ci-dessus. Je pensais qu'ils étaient censés utiliser le même tsconfig.json
le fichier, mais apparemment ce n'est pas le cas.