Enumerare ca tip în TypeScript

Fiecare enumerare creează propriul său tip de date. Să luăm ca exemplu o variabilă care stochează sezonul curent și să îi atribuim tipul Season:

typescriptlet current: Season;

Să scriem în variabila noastră numărul sezonului:

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

Se poate specifica manual numărul sezonului:

typescriptlet current: Season = 3;

Dar dacă încercăm să scriem date de alt tip, de exemplu, un șir de caractere, va fi o eroare:

typescriptlet current: Season = 'str'; // va fi eroare

Din păcate, intervalul de valori nu este urmărit și se poate scrie un număr care nu există în enumerarea noastră:

typescriptlet current: Season = 7; // nu va fi eroare

La verificarea cu operatorul typeof variabila noastră va returna tipul numeric:

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

Rezumând, se poate spune că un astfel de tip nu este verificat foarte strict și de aceea valoarea lui este îndoielnică.