TypeScript Academy · Lektion

Enumerationer: numeriske konstanter og strengkonstanter

Brug enumerationer til at erstatte magiske strenge og tal

Lektion 4 af 413 trin

Enumerationer: numeriske konstanter og strengkonstanter er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i TypeScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Velkommen

Enums lader dig definere et sæt navngivne konstante værdier. De erstatter magiske tal og strenge med læsbare navne, som TypeScript håndhæver.

Numeriske enums

Som standard tildeles enum-medlemmer automatisk stigende tal, der begynder ved 0.
enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right, // 3
}
console.log(Direction.Up); // 0

Brugerdefinerede numeriske enum-værdier

Du kan angive en startværdi eller tilsidesætte individuelle medlemmer. Efterfølgende medlemmer får automatisk stigende værdier ud fra den senest angivne værdi.
enum Status {
  Active = 1,
  Inactive, // 2
  Banned = 100,
}

String-enums

String-enums kræver en eksplicit værdi for hvert medlem. De er mere læsbare i logge og serialiserede data end tal.
enum Color {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE',
}

Brug af enums i funktioner

Brug en enumtype som parametertype for at begrænse værdierne til det definerede sæt.
function move(dir: Direction): void {
  console.log('Moving:', Direction[dir]);
}
move(Direction.Up);

Omvendt opslag (kun numeriske enums)

Numeriske enums understøtter omvendt opslag: Du kan finde medlemsnavnet ud fra dets værdi. String-enums understøtter ikke dette.
enum Status { Active = 1, Inactive = 2 }
console.log(Status[1]); // 'Active'
console.log(Status.Active); // 1

const-enums

`const enum` indsættes direkte ved kompileringstidspunktet — der genereres ikke noget JavaScript-objekt. Det reducerer bundtstørrelsen, men begrænser introspektion under kørsel.
const enum Axis { X, Y, Z }
const a = Axis.X; // compiled to: const a = 0;

Enums kontra unioner af literaler

Mange TypeScript-udviklere foretrækker uniontyper af literaler frem for enums. De er lettere og fungerer uden kode under kørsel.
// Enum
enum Dir { Up = 'UP', Down = 'DOWN' }

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

Heterogene enums (undgå dem)

Det er tilladt at blande string- og numeriske værdier i én enum, men det er forvirrende. Undgå dette mønster.
// Avoid:
enum Mixed { A = 1, B = 'bee' }

Enums er rigtige objekter under kørsel

I modsætning til interfaces og typealiaser genererer enums JavaScript-kode. Det kompilerede resultat er et JavaScript-objekt med både opslag fra navn til værdi og fra værdi til navn (for numeriske enums).

Gennemløb af enum-værdier

Brug Object.values() eller Object.keys() på enum-objektet til at gennemløbe dets medlemmer under kørsel.
enum Role { Admin = 'ADMIN', User = 'USER', Guest = 'GUEST' }
const roles = Object.values(Role);
console.log(roles); // ['ADMIN', 'USER', 'GUEST']

Hurtigt tjek

Hvilken enumtype understøtter omvendt opslag (opslag af navnet ud fra værdien)?

Opsummering

Enums definerer navngivne konstante sæt som rigtige JavaScript-objekter. Brug string-enums for læsbarhed, const-enums for ydeevne, og overvej uniontyper af literaler som et lettere alternativ.
Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
101
Lektioner
352

Ofte stillede spørgsmål

Er lektionen “Enumerationer: numeriske konstanter og strengkonstanter” gratis?

Ja — hele teksten til “Enumerationer: numeriske konstanter og strengkonstanter” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af TypeScript Academy-kurset, skal du opgradere til CoddyKit PRO. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Enumerationer: numeriske konstanter og strengkonstanter”?

Brug enumerationer til at erstatte magiske strenge og tal Du øver dig i TypeScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på TypeScript Academy?

Der kræves ingen tidligere erfaring. TypeScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Enumerationer: numeriske konstanter og strengkonstanter”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne TypeScript Academy-lektion?

Ja. Alle TypeScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Typede arrays: T[] og Array
  2. Readonly-arrays og uforanderlige data
  3. Tupler: typede arrays med fast længde
  4. Enumerationer: numeriske konstanter og strengkonstanter
← Tilbage til TypeScript Academy