Treci la conținutul principal

Enums în TypeScript

Un enum este un fel special de „clasă” care conține un grup de constante — valori care nu pot fi schimbate.

Enums există în două variante: enums de tip string și enums numeric.

Începem cu enums numerice.


Enums numerice - implicit

În mod implicit, un enum dă primului său membru valoarea 0 și adaugă 1 pentru fiecare membru care urmează.

Exemplu

North este 0, East este 1 și așa mai departe. Atribuirea șirului simplu 'North' unei variabile de tipul enum este o eroare de compilare — doar membrii enum-ului sunt valori valide.

Prompt
Arată că un enum numeric începe implicit de la 0 și că un șir simplu nu este o valoare validă de enum. Declară un enum CardinalDirections cu membrii North, East, South, West (fără valori explicite), atribuie CardinalDirections.North unei variabile și afișeaz-o (0), apoi atribuie șirul 'North' aceleiași variabile, astfel încât compilatorul să raporteze că un șir nu poate fi atribuit tipului enum.
Ieșire: program TypeScript și rezultatul capturat

Enums numerice - inițializate

Poți da primului membru o valoare de pornire. Membrii următori numără apoi automat în sus de la acea valoare.

Exemplu

North este setat la 1, deci East devine 2, South 3 și West 4.

Prompt
Arată că un enum numeric poate începe de la o valoare aleasă și continuă să se incrementeze automat de acolo. Declară un enum CardinalDirections în care North este setat la 1, iar East, South, West nu primesc nicio valoare explicită, apoi afișează CardinalDirections.North (1) și CardinalDirections.West (4).
Ieșire: program TypeScript și rezultatul capturat

Enums numerice - complet inițializate

Poți, de asemenea, să dai fiecărui membru propriul număr unic.

Când faci asta, nicio valoare nu mai este incrementată automat — fiecare membru păstrează exact numărul pe care l-ai scris.

Exemplu

Fiecare cod de stare HTTP este scris explicit, deci StatusCodes.NotFound este 404, iar StatusCodes.Success este 200.

Prompt
Arată un enum numeric în care fiecare membru are propria valoare explicită, așa că nimic nu este incrementat automat. Declară un enum StatusCodes cu NotFound = 404, Success = 200, Accepted = 202 și BadRequest = 400, apoi afișează StatusCodes.NotFound (404) și StatusCodes.Success (200).
Ieșire: program TypeScript și rezultatul capturat

Enums de tip string

Enums pot conține și valori de tip string.

Enums de tip string sunt mai des întâlnite decât cele numerice, pentru că valorile lor sunt mai ușor de citit și fac intenția mai clară.

Notă: Din punct de vedere tehnic poți amesteca valori string și numerice în același enum, dar se recomandă să nu faci asta.

Exemplu

Fiecărui membru i se dă o valoare de tip string, așa că afișarea lui CardinalDirections.North tipărește textul North, nu un număr.

Prompt
Arată un enum ai cărui membri conțin valori de tip string în loc de numere. Declară un enum CardinalDirections în care North, East, South și West sunt setați fiecare la propriul nume sub formă de șir, apoi afișează CardinalDirections.North („North”) și CardinalDirections.West („West”).
Ieșire: program TypeScript și rezultatul capturat