Enum som type i TypeScript

Hver enum opretter sin egen datatype. Lad os for eksempel til en variabel, der gemmer den nuværende årstid, tildele typen Season:

typescriptlet current: Season;

Lad os gemme årstallets nummer i vores variabel:

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

Det er muligt at angive årstallets nummer manuelt:

typescriptlet current: Season = 3;

Men hvis man forsøger at gemme data af en anden type, for eksempel en streng, vil der opstå en fejl:

typescriptlet current: Season = 'str'; // vil give en fejl

Desværre bliver værdiområdet ikke overvåget, og det er muligt at angive et nummer, som ikke findes i vores enum:

typescriptlet current: Season = 7; // ingen fejl vil opstå

Ved en kontrol med typeof-operatoren vil vores variabel returnere typen number:

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

Opgørelsen viser, at en sådan type ikke kontrolleres særlig strengt, hvilket gør dens værdi tvivlsom.