Sådan bruges Enums i TypeScript trin-for-trin

Enums i TypeScript er en måde at definere et sæt af navngivne konstanter, der kan bruges til at repræsentere en samling af relaterede værdier. De gør koden mere læsbar og vedligeholdelig ved at give disse værdier venlige navne. Denne vejledning vil lede dig gennem brugen af ​​enums i TypeScript trin-for-trin, der dækker deres typer, fordele og praktiske eksempler.

Hvad er en Enum?

En enum (forkortelse for "enumeration") er en speciel datatype i TypeScript, der giver dig mulighed for at definere et sæt navngivne konstanter. Disse navngivne konstanter kan repræsentere numeriske værdier eller strengværdier, hvilket gør din kode mere beskrivende og mindre udsat for fejl.

Typer af enums i TypeScript

Der er tre typer enums i TypeScript:

  • Numeriske enums
  • Strengoptegnelser
  • Heterogene Enums

Numeriske enums

Numeriske enums er standard i TypeScript. De er et sæt navngivne værdier, der automatisk tildeles numeriske værdier startende fra 0 eller fra en brugerdefineret startværdi, hvis det er angivet.

Grundlæggende numerisk enum eksempel

Nedenfor er et simpelt eksempel på en numerisk enum:

enum Direction {
  Up,
  Down,
  Left,
  Right
}

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

I dette eksempel har Retning enum fire medlemmer: Op, Ned, Venstre og Højre. Som standard er Op tildelt værdien 0, Ned er 1, og så videre. Du kan også angive brugerdefinerede numeriske værdier for medlemmerne.

Numerisk enum med brugerdefinerede værdier

Du kan tildele brugerdefinerede værdier til enumre medlemmer:

enum Status {
  New = 1,
  InProgress,
  Done = 5,
  Cancelled
}

console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6

I dette eksempel er Ny sat til 1, Igangværende er automatisk indstillet til 2, Udført er indstillet til 5, og Annulleret indstilles automatisk til 6.

Strengoptegnelser

String enums er en anden type enum, hvor hvert medlem initialiseres med en streng literal, hvilket gør dem mere læsbare og nemmere at fejlsøge.

Basic String Enum Eksempel

Nedenfor er et eksempel på en strengenum:

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT"
}

let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"

I dette eksempel initialiseres hvert enum-medlem med en strengværdi. I modsætning til numeriske enums har strengenums ikke automatisk forøgede værdier.

Heterogene Enums

Heterogene enums er enums, der indeholder både streng og numeriske medlemmer. Selvom det er muligt at definere dem, anbefales det generelt ikke, da det kan føre til forvirring og fejl i kode.

Eksempel på heterogen enum

Her er et eksempel på en heterogen enum:

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

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

I dette eksempel indeholder MixedEnum både streng og numeriske værdier. Brug sådanne optegnelser forsigtigt, da de kan forårsage forvirring.

Enum Use Cases

Enums er nyttige i en række forskellige scenarier:

  • Repræsenterer et sæt af relaterede konstanter som retninger (Op, Ned, Venstre, Højre).
  • Definition af tilstande i en tilstandsmaskine (Ny, Igangværende, Udført, Annulleret).
  • Brug dem i switch-case statements for bedre læsbarhed.

Enum i et Switch-Case Eksempel

Brug af enums i en switch-case-sætning forbedrer kodelæsbarheden og gør det nemmere at administrere tilstande.

enum Status {
  New,
  InProgress,
  Done,
  Cancelled
}

function getStatusMessage(status: Status): string {
  switch (status) {
    case Status.New:
      return "The task is new.";
    case Status.InProgress:
      return "The task is in progress.";
    case Status.Done:
      return "The task is completed.";
    case Status.Cancelled:
      return "The task is cancelled.";
    default:
      return "Unknown status.";
  }
}

console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."

I dette eksempel er switch-case-sætningen mere læsbar og mindre tilbøjelig til fejl, takket være brugen af ​​enums.

Konklusion

Enums i TypeScript giver en effektiv måde at definere et sæt af navngivne konstanter, hvilket forbedrer kodelæsbarhed og typesikkerhed. Ved at bruge numeriske, strenge eller endda heterogene enums kan du bedre administrere og organisere din kode. Med denne trinvise vejledning bør du nu være fortrolig med at bruge enums i TypeScript for at gøre din kode renere og mere vedligeholdelsesvenlig.