Stap voor stap enums gebruiken in TypeScript

Enums in TypeScript zijn een manier om een ​​set benoemde constanten te definiëren die gebruikt kunnen worden om een ​​verzameling gerelateerde waarden te representeren. Ze maken code leesbaarder en beter te onderhouden door deze waarden vriendelijke namen te geven. Deze gids leidt u stap voor stap door het gebruik van enums in TypeScript, waarbij de typen, voordelen en praktische voorbeelden worden behandeld.

Wat is een Enum?

Een enum (afkorting van "enumeration") is een speciaal gegevenstype in TypeScript waarmee u een set benoemde constanten kunt definiëren. Deze benoemde constanten kunnen numerieke of tekenreekswaarden vertegenwoordigen, waardoor uw code beschrijvender en minder foutgevoelig wordt.

Typen enums in TypeScript

Er zijn drie soorten enums in TypeScript:

  • Numerieke enums
  • String-enums
  • Heterogene enums

Numerieke enums

Numerieke enums zijn de standaard in TypeScript. Het zijn een set benoemde waarden waaraan automatisch numerieke waarden worden toegewezen, beginnend bij 0, of vanaf een aangepaste startwaarde als deze is opgegeven.

Basis numerieke enum voorbeeld

Hieronder ziet u een eenvoudig voorbeeld van een numerieke enum:

enum Direction {
  Up,
  Down,
  Left,
  Right
}

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

In dit voorbeeld heeft de Direction enum vier leden: Up, Down, Left en Right. Standaard wordt aan Up de waarde 0 toegewezen, Down is 1, enzovoort. U kunt ook aangepaste numerieke waarden voor de leden opgeven.

Numerieke enum met aangepaste waarden

U kunt aangepaste waarden toewijzen aan enum-leden:

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

In dit voorbeeld wordt New ingesteld op 1, wordt InProgress automatisch ingesteld op 2, wordt Done ingesteld op 5 en wordt Cancelled automatisch ingesteld op 6.

String-enums

String-enums zijn een ander type enum waarbij elk lid wordt geïnitialiseerd met een letterlijke tekenreeks, waardoor ze beter leesbaar en gemakkelijker te debuggen zijn.

Basis String Enum Voorbeeld

Hieronder ziet u een voorbeeld van een string-enum:

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

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

In dit voorbeeld wordt elk enum-lid geïnitialiseerd met een stringwaarde. In tegenstelling tot numerieke enums hebben string-enums geen automatisch verhoogde waarden.

Heterogene enums

Heterogene enums zijn enums die zowel string- als numerieke leden bevatten. Hoewel het mogelijk is om ze te definiëren, wordt dit over het algemeen niet aanbevolen omdat het kan leiden tot verwarring en fouten in de code.

Heterogene Enum-voorbeeld

Hier is een voorbeeld van een heterogene enum:

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

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

In dit voorbeeld bevat MixedEnum zowel string- als numerieke waarden. Gebruik dergelijke enums voorzichtig, omdat ze verwarring kunnen veroorzaken.

Enum-gebruiksscenario's

Enumeraties zijn handig in verschillende scenario's:

  • Geeft een reeks gerelateerde constanten weer, zoals richtingen (omhoog, omlaag, links, rechts).
  • Statussen definiëren in een toestandsautomaat (Nieuw, In uitvoering, Gereed, Geannuleerd).
  • Gebruik ze in switch-case statements voor een betere leesbaarheid.

Enum in een Switch-Case-voorbeeld

Het gebruik van enums in een switch-case-instructie verbetert de leesbaarheid van de code en maakt het eenvoudiger om statussen te beheren.

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."

In dit voorbeeld is de switch-case-instructie leesbaarder en minder foutgevoelig dankzij het gebruik van enums.

Conclusie

Enums in TypeScript bieden een krachtige manier om een ​​set benoemde constanten te definiëren, wat de leesbaarheid van de code en typeveiligheid verbetert. Door numerieke, string- of zelfs heterogene enums te gebruiken, kunt u uw code beter beheren en organiseren. Met deze stapsgewijze handleiding zou u nu vertrouwd moeten zijn met het gebruik van enums in TypeScript om uw code schoner en beter te onderhouden te maken.