Enum เป็นประเภทข้อมูลใน TypeScript
แต่ละ enum จะสร้างประเภทข้อมูลของตัวเอง
ลองยกตัวอย่างสำหรับ
ตัวแปรที่เก็บฤดูกาลปัจจุบันมากำหนด
ประเภทเป็น Season:
let current: Season;
ลองกำหนดค่าเลขฤดูกาลลงในตัวแปรของเรา:
let current: Season = Season.Winter;
console.log(current); // 0
สามารถระบุเลขฤดูกาลด้วยมือได้:
let current: Season = 3;
แต่ถ้าลองกำหนดข้อมูล ประเภทอื่น เช่น สตริง จะเกิด ข้อผิดพลาด:
let current: Season = 'str'; // จะเกิดข้อผิดพลาด
น่าเสียดายที่ช่วงของค่าจะไม่ถูกตรวจสอบ และสามารถกำหนดหมายเลขที่ไม่มีอยู่ใน enum ของเราได้:
let current: Season = 7; // จะไม่เกิดข้อผิดพลาด
เมื่อตรวจสอบด้วยโอเปอเรเตอร์ typeof
ตัวแปรของเราจะคืนค่าประเภทตัวเลข:
let current: Season = 3;
console.log(typeof current); // "number"
โดยสรุปแล้ว สามารถกล่าวได้ว่าประเภทดังกล่าว ถูกตรวจสอบไม่เข้มงวดมากนักและจากเหตุนี้ คุณค่าของมันจึงเป็นที่น่าสงสัย