JavaScript **không hỗ trợ enum native**. Workaround: dùng Object.freeze() trên object chứa các hằng số.
Ví dụ
const Color = {
RED: 1,
BLUE: 2,
GREEN: 3,
YELLOW: 4
};
Object.freeze(Color); // ngăn thêm/sửa/xóa property
// Usage
let carColor = Color.BLUE;
// Thử thêm mới → fail silently (strict mode: TypeError)
Color.WHITE = 5;
console.log(Color); // { RED: 1, BLUE: 2, GREEN: 3, YELLOW: 4 }
Lưu ý
Object.freezechỉ **shallow freeze** — object lồng nhau vẫn mutable.- Cần deep freeze? Viết helper đệ quy freeze.
- TypeScript có
enumnative compile-time.