Kiểu liệt kê trong TypeScript

Mỗi kiểu liệt kê tạo ra một kiểu dữ liệu riêng của nó. Hãy lấy ví dụ, gán kiểu Season cho biến lưu mùa hiện tại:

typescriptlet current: Season;

Gán giá trị số cho biến của chúng ta:

typescriptlet current: Season = Season.Winter;
console.log(current); // 0

Có thể chỉ định số mùa thủ công:

typescriptlet current: Season = 3;

Nhưng nếu cố gắng gán dữ liệu kiểu khác, ví dụ, chuỗi, thì sẽ báo lỗi:

typescriptlet current: Season = 'str'; // sẽ báo lỗi

Thật không may, phạm vi giá trị không được theo dõi và có thể gán một số không có trong kiểu liệt kê của chúng ta:

typescriptlet current: Season = 7; // sẽ không báo lỗi

Khi kiểm tra bằng toán tử typeof, biến của chúng ta sẽ trả về kiểu số:

typescriptlet current: Season = 3;
console.log(typeof current); // "number"

Tóm lại, có thể nói rằng kiểu này được kiểm tra không quá nghiêm ngặt và điều đó làm giảm giá trị của nó.