Un ghid despre cum să lucrezi cu el

TypeScript, un superset al JavaScript-ului, facilitează scrierea unui cod mai sigur și mai fiabil.

Folosind TypeScript, poți identifica și remedia erorile într-o fază incipientă a dezvoltării. O caracteristică esențială a TypeScript este reprezentată de tipurile enumerate (Enums). Un Enum este o construcție des utilizată care contribuie la securizarea codului.

Acest articol explorează în profunzime Enums, modul de creare și utilizare, precum și alte aspecte importante.

Ce reprezintă un Enum?

Enum este abrevierea pentru tipul enumerat. Un tip de date enumerat se definește prin valorile distincte pe care o variabilă de acest tip le poate adopta. Aceste valori distincte sunt adesea denumite membri sau elemente.

În acest context, vom utiliza termenul „membri”. Tipurile enumerate nu sunt exclusiv o particularitate a TypeScript, ci sunt prezente și în alte limbaje de programare. Utilizarea enumerațiilor îmbunătățește siguranța tipului în cadrul programelor TypeScript.

Articol relevant: Cele mai importante biblioteci și runtime-uri TypeScript pe care un dezvoltator trebuie să le cunoască

De ce să folosim Enums?

Enumerațiile te ajută să precizezi valorile posibile pe care le poate avea o variabilă, dar și valorile pe care le poate accepta un argument al unei funcții. Această abordare garantează că dezvoltatorii furnizează întotdeauna valorile adecvate variabilelor și argumentelor funcțiilor, diminuând erorile și facilitând scrierea unui cod mai sigur și mai solid.

Condiții preliminare pentru lucrul cu Enums

În acest tutorial, voi demonstra cum se lucrează cu enumerările în TypeScript. Pentru a urmări acest tutorial, trebuie să poți compila și rula cod TypeScript.

Prin urmare, asigură-te că ai instalat Node.js pentru a executa codul JavaScript generat. Dacă nu ai TypeScript instalat, poți urmări videoclipul de mai jos pentru a afla cum să faci acest lucru.

Alternativ, poți compila și executa scripturi rapid utilizând `ts-node`. Deși această metodă va fi folosită în acest articol, pentru proiecte mai complexe recomand instalarea TypeScript. Pentru a executa un script cu `ts-node`, folosește comanda:

npx ts-node <nume_script>

Se presupune că ai cunoștințe de bază despre JavaScript și TypeScript.

Lucrul cu o enumerare simplă

Crearea unei enumerări simple

În TypeScript, enumerările se creează folosind cuvântul cheie `enum`, urmat de numele enumerării și de lista membrilor săi. Iată un exemplu de declarare a unei enumerări pentru punctele cardinale:

enum Directie {
    Nord,
    Est,
    Sud,
    Vest
}

Observă că membrii enumerării nu sunt înconjurați de ghilimele – nu sunt șiruri de caractere.

Utilizarea unei enumerări simple

Alocă o valoare enumerată unei variabile în felul următor:

const directia: Directie = Directie.Nord;

Deoarece atribuim variabila la declarare, TypeScript poate deduce tipul de date, astfel încât nu este necesar să specificăm tipul explicit. Putem scrie, așadar:

const directia = Directie.Nord;

Pentru a vedea valoarea variabilei `directia`, o putem afișa în consolă:

console.log(directia);

Rezultatul afișat va fi:

0

Variabila `directia` are valoarea zero, chiar dacă i-am atribuit `Directie.Nord`. Acest lucru se întâmplă deoarece fiecărui membru i se asociază implicit o valoare numerică, începând cu 0 pentru primul membru, 1 pentru al doilea și așa mai departe. Iată o demonstrație:

console.log(Directie.Nord, Directie.Est, Directie.Sud, Directie.Vest)

Astfel, putem verifica dacă variabila `directia` corespunde direcției Nord, comparând-o cu valoarea zero. De exemplu:

// Verificarea egalității
let esteNord = directia == 0;

// Afișarea rezultatului
console.log(esteNord);

După cum am demonstrat, `Directie.Nord` are valoarea 0. În loc să comparăm cu 0, putem compara cu `Directie.Nord`:

// Verificarea dacă direcția este Nord
esteNord = directia == Directie.Nord;

// Afișarea rezultatului
console.log(esteNord);

Acest mod de lucru este util și frecvent întâlnit. Cu toate acestea, există și alte opțiuni, pe care le vom explora în continuare, cum ar fi lucrul cu valori personalizate.

Lucrul cu valori personalizate

În mod implicit, TypeScript atribuie valori numerice membrilor unei enumerări, începând cu zero. Totuși, poți atribui valori personalizate membrilor enumerației. Iată un exemplu:

enum RatingStele {
    FoarteSlab = 1,
    Slab = 2,
    Mediu = 3,
    Bun = 4,
    Excelent = 5
}

Alternativ, poți proceda astfel:

enum RatingStele {
    FoarteSlab = 1,
    Slab,
    Mediu,
    Bun,
    Excelent
}

În acest caz, primul membru primește valoarea 1, iar ceilalți sunt incrementați automat față de valoarea anterioară. `Slab` va avea valoarea 2, `Mediu` va avea 3 și așa mai departe.

Opțiunile unei enumerări nu sunt neapărat valori numerice, după cum vom vedea. Membrii cu valori numerice se vor comporta ca numere normale.

console.log(typeof RatingStele.Mediu);

Acest cod va afișa „number”, ceea ce înseamnă că poți efectua operații numerice, inclusiv comparații:

console.log(RatingStele.Excelent > RatingStele.Mediu)

Acest cod va afișa „true”.

Utilizarea șirurilor de caractere ca valori personalizate

Valorile membrilor enum pot fi și șiruri de caractere. Iată cum se procedează:

enum Alegere {
    PastilaRosie = "Cunoaște Totul",
    PastilaAlbastra = "Nu Știe Nimic"
}

În acest caz, membrii enumerării se vor comporta similar, dar valorile fiind șiruri, poți efectua operații cu șiruri, nu cu numere, ca în exemplele anterioare.

Enumerații eterogene

Poți combina valori șir și numerice într-o enumerare. Deși nu este recomandat, este posibil:

enum Mixt {
    Primul = "Șir",
    AlDoilea = 2
}

Concluzie

Acest articol a acoperit noțiunile de bază ale enumerărilor în TypeScript, importanța lor și diferitele tipuri de valori pe care le pot avea membrii acestora.

Te invit să citești și articolul nostru despre diferențele dintre Tip și Interfață în TypeScript.