Енумерација како тип во TypeScript

Секоја енумерација создава свој сопствен тип на податоци. Ајде за пример за променливата што ја чува тековната сезона да ѝ доделиме тип Season:

typescriptlet current: Season;

Да ја запишеме во нашата променлива бројката на сезоната:

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

Може да се назначи бројката на сезоната рачно:

typescriptlet current: Season = 3;

Но, ако се обидеме да запишеме податоци од друг тип, на пример, стринг, ќе има грешка:

typescriptlet current: Season = 'str'; // ќе има грешка

За жал, опсегот на вредности не се следи и може да се запише бројка што не постои во нашата енумерација:

typescriptlet current: Season = 7; // нема да има грешка

При проверка преку операторот typeof нашата променлива ќе врати нумерички тип:

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

Може да се заклучи дека ваков тип не се проверува многу строго и од тука неговата вредност е сомнителна.