Enum mint típus a TypeScript-ben

Minden enum létrehoz egy saját adattípust. Példaként a jelenlegi évszakot tároló változóhoz rendeljük hozzá a Season típust:

typescriptlet current: Season;

Írjuk be a változónkba az évszak számát:

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

Az évszak számát manuálisan is megadhatjuk:

typescriptlet current: Season = 3;

Ha azonban más típusú adatot próbálunk beírni, például egy stringet, akkor hibaüzenetet kapunk:

typescriptlet current: Season = 'str'; // hibaüzenetet fog adni

Sajnos az értéktartományt nem követi nyomon a rendszer, és olyan számot is beírhatunk, amely nincs benne a felsorolásunkban:

typescriptlet current: Season = 7; // nem ad hibát

A typeof operátorral történő ellenőrzéskor a változónk szám típust ad vissza:

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

Összefoglalva elmondhatjuk, hogy ez a típus nagyon szigorúan nem ellenőrzött, és emiatt az értéke kétséges.