TypeScript er et supersæt af JavaScript, der hjælper dig med at skrive typesikker kode.
Med TypeScript vil du være i stand til at fange fejl tidligere og rette dem. En af de vigtige TypeScript-funktioner er Enums. En Enum er en populær konstruktion i TypeScript, der hjælper dig med at skrive sikrere kode.
I denne artikel vil jeg forklare Enums, hvordan man opretter og bruger dem, og mange andre ting at overveje.
Indholdsfortegnelse
Hvad er en Enum?
Enum er en forkortelse for enumerated type. En optalt datatype er defineret af de forskellige værdier, en variabel af den type kunne tage. De forskellige værdier, det kunne have, kaldes ofte medlemmer eller elementer.
I denne artikel vil vi kalde dem medlemmer. Enums er ikke kun en TypeScript-funktion. Tværtimod er opregnede typer også til stede og bruges i andre programmeringssprog. Brug af enums muliggør bedre typesikkerhed i TypeScript-programmer.
Læs også: Top TypeScript-biblioteker og Runtime at kende som udvikler
Hvorfor bruge Enums?
Enums hjælper dig med at angive, hvilke værdier en variabel kan indeholde. De hjælper dig også med at angive, hvilke værdier et funktionsargument kan tage. Dette er med til at sikre, at udviklerne altid giver forventede værdier til variabler og funktionsargumenter. Dette vil hjælpe med at eliminere fejl og hjælpe dig med at skrive sikrere og mere robust kode.
Forudsætninger for at arbejde med enums
I denne tutorial vil jeg demonstrere, hvordan man arbejder med enums i TypeScript. For at følge med i denne tutorial skal du være i stand til at køre og udføre TypeScript-kode.
Derfor skal du have NodeJs installeret for at udføre din JavaScript-kode. Hvis du ikke har TypeScript installeret, er videoen nedenfor en guide til, hvordan du gør det.
Alternativt, hvis du vil kompilere og udføre et script med det samme, skal du bruge ts-node. Selvom det er, hvad jeg vil gøre i denne artikel, for større projekter, vil jeg anbefale at installere TypeScript. For at udføre et script ved hjælp af ts-node, bruger du følgende kommando:
npx ts-node <scriptname>
Denne artikel forudsætter også, at du er fortrolig med JavaScript og grundlæggende TypeScript.
Arbejde med en simpel enum
Sådan opretter du en simpel enum
Enums i TypeScript oprettes ved hjælp af nøgleordet enum. Enummets navn følger, og derefter en liste over medlemmer, som enummet har. Her er et eksempel, hvor vi erklærer en enum for de fire kardinalpunkter på kompasset.
enum Direction { North, East, South, West }
Bemærk, at der ikke er anførselstegn omkring medlemmerne i enummet – de er ikke strenge.
Sådan bruger du en simpel enum
Du tildeler en optalt værdi til en variabel som følger:
const heading: Direction = Direction.North;
Fordi vi tildeler variablen ved erklæringen, kan TypeScript udlede datatypen. Som følge heraf behøver vi ikke at hævde typen. I stedet kan vi skrive dette:
const heading = Direction.North;
For at finde ud af, hvilken værdi overskriftsvariablen har, kan vi console.log den.
console.log(heading);
Resultatet af dette bliver:
0
Overskriftsvariablen indeholder værdien nul, selvom vi har tildelt værdien af Direction.North til den. Dette skyldes, at hvert medlem tildeles en numerisk værdi, når der oprettes enums. Det første medlem tildeles 0, det andet 1 og så videre. Her er en demonstration:
console.log(Direction.North, Direction.East, Direction.South, Direction.West)
Derfor kan du kontrollere, om overskriftsvariablen indeholder nord, ved at hævde, at den er lig med nul. For eksempel:
// Asserting equality let isNorth = heading == 0; // Printing the result console.log(isNorth);
Som vist tidligere, er Direction.North lig med 0. Så i stedet for at kontrollere, om overskriften er lig med nul, kan vi kontrollere, om den er lig med Direction.North.
// Checking if direction is North isNorth = heading == Direction.North; // Printing the result console.log(isNorth);
Alt dette er nyttigt; chancerne er, at det er sådan, du vil bruge opregnede værdier. Du kan dog gøre mere, som du vil se senere. Dette næste afsnit vil diskutere, hvordan du kan arbejde med tilpassede værdier.
Arbejde med brugerdefinerede værdier
Når du opretter en enum, tildeler TypeScript automatisk numeriske værdier til medlemmerne fra nul. Du kan dog ønske, at dine medlemmer skal have tilpassede værdier i stedet for standardværdierne, i hvilket tilfælde du kan tildele dem. Ligesom:
enum StarRating { VeryPoor = 1, Poor = 2, Average = 3, Good = 4, Excellent = 5 }
Alternativt kan du gøre følgende:
enum StarRating { VeryPoor = 1, Poor, Average, Good, Excellent }
I dette tilfælde vil det første medlem blive tildelt værdien 1. De efterfølgende valg vil blive automatisk forøget fra det tidligere valg. Så Dårlig vil have en vurdering på 2, et gennemsnit på 3 og så videre.
Valg i en enum har ikke altid numeriske værdier, som du vil se senere. Men dem med numeriske værdier vil opføre sig som normale tal.
console.log(typeof StarRating.Average);
Dette vil udskrive “nummer”. Dette betyder, at du kan lave alle tal-ting, herunder at foretage sammenligninger såsom:
console.log(StarRating.Excellent > StarRating.Average)
Dette vil udskrive “sandt”.
Brug af strenge som brugerdefinerede værdier
Som nævnt tidligere kan enum-valg have strengværdier i stedet for kun tal. Sådan ville du gøre det:
enum Choice { RedPill = "Know Everything" BluePill = "Know Nothing" }
I dette tilfælde vil enum-valgene opføre sig som de foregående. Men fordi værdierne er strenge, kan du udføre strengoperationer, ikke taloperationer, som i det foregående eksempel.
Heterogene Enums
Du kan også blande strenge og numeriske værdier. Dette er frarådigt og ikke særlig nyttigt, men alligevel muligt.
enum Mixed { First = "String" Second = 2 }
Afsluttende ord
I denne artikel dækkede vi, hvad enums i TypeScript er. Vi diskuterede også, hvorfor de er vigtige. Vi dækkede også de forskellige slags værdier enum-medlemmer kan have.
Tjek derefter vores artikel om Type vs. Interface i TypeScript.