Enum เป็นประเภทข้อมูลใน TypeScript

แต่ละ enum จะสร้างประเภทข้อมูลของตัวเอง ลองยกตัวอย่างสำหรับ ตัวแปรที่เก็บฤดูกาลปัจจุบันมากำหนด ประเภทเป็น Season:

typescriptlet current: Season;

ลองกำหนดค่าเลขฤดูกาลลงในตัวแปรของเรา:

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

สามารถระบุเลขฤดูกาลด้วยมือได้:

typescriptlet current: Season = 3;

แต่ถ้าลองกำหนดข้อมูล ประเภทอื่น เช่น สตริง จะเกิด ข้อผิดพลาด:

typescriptlet current: Season = 'str'; // จะเกิดข้อผิดพลาด

น่าเสียดายที่ช่วงของค่าจะไม่ถูกตรวจสอบ และสามารถกำหนดหมายเลขที่ไม่มีอยู่ใน enum ของเราได้:

typescriptlet current: Season = 7; // จะไม่เกิดข้อผิดพลาด

เมื่อตรวจสอบด้วยโอเปอเรเตอร์ typeof ตัวแปรของเราจะคืนค่าประเภทตัวเลข:

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

โดยสรุปแล้ว สามารถกล่าวได้ว่าประเภทดังกล่าว ถูกตรวจสอบไม่เข้มงวดมากนักและจากเหตุนี้ คุณค่าของมันจึงเป็นที่น่าสงสัย