Enumeratie als type in TypeScript

Elke enumeratie creëert zijn eigen gegevenstype. Laten we bijvoorbeeld voor een variabele die het huidige seizoen opslaat, het type Season toewijzen:

typescriptlet current: Season;

Laten we het seizoensnummer in onze variabele opschrijven:

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

Het seizoensnummer kan handmatig worden opgegeven:

typescriptlet current: Season = 3;

Maar als we proberen gegevens van een ander type op te slaan, bijvoorbeeld een string, dan zal er een fout optreden:

typescriptlet current: Season = 'str'; // er zal een fout optreden

Helaas wordt het waardenbereik niet gecontroleerd en is het mogelijk om een nummer in te stellen dat niet in onze enumeratie voorkomt:

typescriptlet current: Season = 7; // geen fout

Bij controle met de typeof operator geeft onze variabele het numerieke type terug:

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

Samenvattend kunnen we zeggen dat een dergelijk type niet erg strikt wordt gecontroleerd, en daarom is de waarde ervan twijfelachtig.