Introducció a les Enumeracions

Les enumeracions (enums) són una característica de TypeScript que permet definir un conjunt de valors amb noms simbòlics. Són útils per representar un conjunt de valors relacionats de manera més llegible i mantenible. Les enumeracions poden ser numèriques o de cadena.

Tipus d'Enumeracions

  1. Enumeracions Numèriques: Assignen valors numèrics automàticament o manualment.
  2. Enumeracions de Cadena: Assignen valors de cadena als membres de l'enumeració.

Enumeracions Numèriques

Definició i Ús

Les enumeracions numèriques són les més comunes. Per defecte, els membres de l'enumeració numèrica comencen amb el valor 0 i incrementen en 1 per cada membre següent.

enum Direction {
    Up,
    Down,
    Left,
    Right
}

let move: Direction = Direction.Up;
console.log(move); // Sortida: 0

Assignació Manual de Valors

També es poden assignar valors específics als membres de l'enumeració.

enum Status {
    Active = 1,
    Inactive,
    Pending
}

console.log(Status.Active);   // Sortida: 1
console.log(Status.Inactive); // Sortida: 2
console.log(Status.Pending);  // Sortida: 3

En aquest exemple, Inactive tindrà el valor 2 i Pending el valor 3, ja que segueixen el valor inicial assignat a Active.

Enumeracions de Cadena

Les enumeracions de cadena permeten assignar valors de cadena als membres de l'enumeració.

enum Color {
    Red = "RED",
    Green = "GREEN",
    Blue = "BLUE"
}

let favoriteColor: Color = Color.Green;
console.log(favoriteColor); // Sortida: "GREEN"

Enumeracions Heterogènies

Tot i que no és una pràctica recomanada, TypeScript permet crear enumeracions que barregen valors numèrics i de cadena.

enum MixedEnum {
    No = 0,
    Yes = "YES"
}

console.log(MixedEnum.No);  // Sortida: 0
console.log(MixedEnum.Yes); // Sortida: "YES"

Exercicis Pràctics

Exercici 1: Enumeració Numèrica

Defineix una enumeració per representar els dies de la setmana i imprimeix el valor corresponent a "Dimecres".

enum Weekday {
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

let midWeek: Weekday = Weekday.Wednesday;
console.log(midWeek); // Sortida esperada: 3

Exercici 2: Enumeració de Cadena

Defineix una enumeració per representar els estats d'un procés (Iniciat, En Progrés, Completat) i imprimeix el valor corresponent a "Completat".

enum ProcessState {
    Started = "STARTED",
    InProgress = "IN_PROGRESS",
    Completed = "COMPLETED"
}

let finalState: ProcessState = ProcessState.Completed;
console.log(finalState); // Sortida esperada: "COMPLETED"

Errors Comuns i Consells

  1. No Assignar Valors Correctament: Assegura't d'assignar valors únics i significatius als membres de l'enumeració.
  2. Enumeracions Heterogènies: Evita barrejar valors numèrics i de cadena en la mateixa enumeració, ja que pot portar a confusions.
  3. Ús de Noms Descriptius: Utilitza noms descriptius per als membres de l'enumeració per millorar la llegibilitat del codi.

Resum

Les enumeracions en TypeScript són una eina poderosa per definir conjunts de valors relacionats de manera clara i mantenible. Hem vist com crear enumeracions numèriques i de cadena, així com alguns exemples pràctics per reforçar els conceptes. En el proper tema, explorarem la inferència de tipus en TypeScript.

© Copyright 2024. Tots els drets reservats