TypeScript Academy · leksjon

Enum-typer: numeriske konstanter og strengkonstanter

Bruk enum-typer til å erstatte magiske strenger og tall.

Leksjon 4 av 413 trinn

Enum-typer: numeriske konstanter og strengkonstanter er en gratis leksjon i TypeScript Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i TypeScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Velkommen

Enums lar deg definere et sett med navngitte konstantverdier. De erstatter magiske tall og strenger med lesbare navn som TypeScript håndhever.

Numeriske enums

Som standard får enum-medlemmer automatisk tildelte, fortløpende tall som starter på 0.
enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right, // 3
}
console.log(Direction.Up); // 0

Egendefinerte numeriske enum-verdier

Du kan angi en startverdi eller overstyre enkelte medlemmer. De påfølgende medlemmene får automatisk fortløpende verdier fra den sist angitte verdien.
enum Status {
  Active = 1,
  Inactive, // 2
  Banned = 100,
}

String-enums

String-enums krever en eksplisitt verdi for hvert medlem. De er mer lesbare i logger og serialiserte data enn tall.
enum Color {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE',
}

Bruk av enums i funksjoner

Bruk en enum-type som parametertype for å begrense verdiene til det definerte settet.
function move(dir: Direction): void {
  console.log('Moving:', Direction[dir]);
}
move(Direction.Up);

Omvendt oppslag (bare numeriske enums)

Numeriske enums støtter omvendt oppslag: Du kan finne medlemsnavnet ut fra verdien. String-enums støtter ikke dette.
enum Status { Active = 1, Inactive = 2 }
console.log(Status[1]); // 'Active'
console.log(Status.Active); // 1

const-enums

`const enum` bygges inn ved kompileringstidspunktet – det genereres ikke noe JavaScript-objekt. Dette reduserer buntstørrelsen, men begrenser introspeksjon ved kjøring.
const enum Axis { X, Y, Z }
const a = Axis.X; // compiled to: const a = 0;

Enums kontra unioner av literaler

Mange TypeScript-utviklere foretrekker union-literaltyper fremfor enums. De er lettere og fungerer uten kode ved kjøring.
// Enum
enum Dir { Up = 'UP', Down = 'DOWN' }

// Union literal (preferred by many)
type Dir2 = 'UP' | 'DOWN';

Heterogene enums (bør unngås)

Det er tillatt, men forvirrende, å blande streng- og tallverdier i én enum. Unngå dette mønsteret.
// Avoid:
enum Mixed { A = 1, B = 'bee' }

Enums er ekte objekter ved kjøring

I motsetning til grensesnitt og typealiaser genererer enums JavaScript-kode. Det kompilerte resultatet er et JavaScript-objekt med både oppslag fra navn til verdi og fra verdi til navn (for numeriske enums).

Iterere over enum-verdier

Bruk Object.values() eller Object.keys() på enum-objektet for å iterere over medlemmene ved kjøring.
enum Role { Admin = 'ADMIN', User = 'USER', Guest = 'GUEST' }
const roles = Object.values(Role);
console.log(roles); // ['ADMIN', 'USER', 'GUEST']

Kjapp sjekk

Hvilken enum-type støtter omvendt oppslag (å finne navnet ut fra verdien)?

Oppsummering

Enums definerer navngitte konstantsett som ekte JavaScript-objekter. Bruk string-enums for lesbarhet, const-enums for ytelse, og vurder union-literaltyper som et lettere alternativ.
Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
101
Leksjoner
352

Ofte stilte spørsmål

Er leksjonen «Enum-typer: numeriske konstanter og strengkonstanter» gratis?

Ja – hele teksten i «Enum-typer: numeriske konstanter og strengkonstanter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av TypeScript Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i TypeScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Enum-typer: numeriske konstanter og strengkonstanter»?

Bruk enum-typer til å erstatte magiske strenger og tall. Du øver på TypeScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med TypeScript Academy?

Ingen tidligere erfaring er nødvendig. TypeScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Enum-typer: numeriske konstanter og strengkonstanter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne TypeScript Academy-leksjonen?

Ja. Alle TypeScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Typede arrayer: T[] og Array
  2. Skrivebeskyttede arrayer og uforanderlige data
  3. Tupler: typede arrayer med fast lengde
  4. Enum-typer: numeriske konstanter og strengkonstanter
← Tilbake til TypeScript Academy