Slik bruker du Enums i TypeScript trinn-for-trinn

Enums i TypeScript er en måte å definere et sett med navngitte konstanter som kan brukes til å representere en samling av relaterte verdier. De gjør koden mer lesbar og vedlikeholdbar ved å gi vennlige navn til disse verdiene. Denne veiledningen vil lede deg gjennom bruken av enums i TypeScript trinn-for-trinn, og dekker deres typer, fordeler og praktiske eksempler.

Hva er en Enum?

En enum (forkortelse for "enumeration") er en spesiell datatype i TypeScript som lar deg definere et sett med navngitte konstanter. Disse navngitte konstantene kan representere numeriske verdier eller strengverdier, noe som gjør koden din mer beskrivende og mindre utsatt for feil.

Typer enums i TypeScript

Det er tre typer enums i TypeScript:

  • Numeriske oppslag
  • Enums for strenger
  • Heterogene enums

Numeriske oppslag

Numeriske oppslag er standard i TypeScript. De er et sett med navngitte verdier som automatisk blir tildelt numeriske verdier fra 0, eller fra en egendefinert startverdi hvis spesifisert.

Grunnleggende numerisk oppregningseksempel

Nedenfor er et enkelt eksempel på en numerisk enum:

enum Direction {
  Up,
  Down,
  Left,
  Right
}

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

I dette eksemplet har Retning enum fire medlemmer: Opp, Ned, Venstre og Høyre. Som standard er Opp tildelt verdien 0, Ned er 1, og så videre. Du kan også angi egendefinerte numeriske verdier for medlemmene.

Numerisk enum med egendefinerte verdier

Du kan tilordne egendefinerte verdier til enum 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 eksemplet er Ny satt til 1, InProgress er automatisk satt til 2, Ferdig er satt til 5, og Avbrutt settes automatisk til 6.

Enums for strenger

String enums er en annen type enum der hvert medlem initialiseres med en streng bokstavelig, noe som gjør dem mer lesbare og lettere å feilsøke.

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 eksemplet initialiseres hvert enum-medlem med en strengverdi. I motsetning til numeriske opptegnelser, har ikke strengoppregninger automatiske verdier.

Heterogene enums

Heterogene enums er enums som inneholder både streng og numeriske medlemmer. Selv om det er mulig å definere dem, anbefales det generelt ikke, da det kan føre til forvirring og feil 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 eksemplet inneholder MixedEnum både streng- og numeriske verdier. Bruk slike opptegnelser med forsiktighet da de kan forårsake forvirring.

Enum Use Cases

Enums er nyttige i en rekke scenarier:

  • Representerer et sett med relaterte konstanter som retninger (Opp, Ned, Venstre, Høyre).
  • Definere tilstander i en tilstandsmaskin (New, InProgress, Done, Cancelled).
  • Bruke dem i switch-case statements for bedre lesbarhet.

Enum i et Switch-Case-eksempel

Å bruke enums i en switch-case-setning forbedrer kodelesbarheten og gjør det enklere å administrere tilstander.

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 eksemplet er switch-case-setningen mer lesbar og mindre utsatt for feil, takket være bruk av enums.

Konklusjon

Enums i TypeScript gir en kraftig måte å definere et sett med navngitte konstanter, som forbedrer kodelesbarhet og typesikkerhet. Ved å bruke numeriske, strenge eller til og med heterogene enums, kan du bedre administrere og organisere koden din. Med denne trinnvise veiledningen bør du nå være komfortabel med å bruke enums i TypeScript for å gjøre koden renere og mer vedlikeholdbar.