Trong TypeScript, tôi muốn so sánh hai biến chứa giá trị enum. Đây là mã tối thiểu ví dụ của tôi:Cách so sánh Enums trong TypeScript
enum E {
A,
B
}
let e1: E = E.A
let e2: E = E.B
if (e1 === e2) {
console.log("equal")
}
Khi biên dịch với tsc
(v 2.0.3) tôi nhận được lỗi sau:
TS2365: Operator '===' cannot be applied to types 'E.A' and 'E.B'.
Cùng với ==
, !==
và !=
. Tôi đã thử thêm từ khóa const
nhưng điều đó dường như không có hiệu lực. Các TypeScript spec nói như sau:
4.19.3 The <, >, <=, >=, ==, !=, ===, and !== operators
These operators require one or both of the operand types to be assignable to the other. The result is always of the Boolean primitive type.
nào (tôi nghĩ) giải thích lỗi. Nhưng làm thế nào tôi có thể làm tròn nó?
Side lưu ý
Tôi đang sử dụng trình biên tập Atom với atom-typescript, và tôi không nhận được bất kỳ lỗi/cảnh báo trong trình soạn thảo của tôi. Nhưng khi tôi chạy tsc
trong cùng một thư mục tôi nhận được lỗi ở trên. Tôi nghĩ rằng họ có nghĩa vụ phải sử dụng cùng một tập tin tsconfig.json
, nhưng rõ ràng đó không phải là trường hợp.
Điều đó không làm việc cho tôi. Tôi đang nhận được một undefined – dave0688