const-assertions og as const
Bruk as const for å utlede litteral- og tupletyper nøyaktig.
const-assertions og as const 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.
Hva er as const?
as const er en typepåstand som forteller TypeScript at det skal utlede de mest spesifikke literaltypene som er mulige for et uttrykk, og gjøre alle egenskaper readonly.
const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]Hindre typeutvidelse med as const
Uten as const utvides strengverdier i arrayer og objekter til string. Med as const beholdes de som literaltyper.
const dir1 = { direction: "left" };
// dir1.direction: string
const dir2 = { direction: "left" } as const;
// dir2.direction: "left"as const på objektliteraler
Alle egenskaper i et objekt med as const blir readonly og beholder literaltypen sin rekursivt.
const theme = {
color: "dark",
sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)as const for tuppeltyper
Arrayer med as const blir readonly-tupler med literaltyper for elementene – nyttig for å definere faste argumentlister.
const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]Avlede uniontyper fra as const
Et vanlig mønster er å definere en as const-array med verdier og deretter avlede en uniontype fra den ved hjelp av typeof og indeksert tilgang.
const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"as const i funksjonsargumenter
De kan bruke as const direkte ved funksjonskall for å bevare literaltyper gjennom kallgrensen.
function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literalRekursiv bruk av Readonly
as const bruker Readonly rekursivt. Alle nestede objekter og arrayer blir readonly, noe som hindrer endringer dypt i strukturen.
const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonlyas const kontra Object.freeze
as const er en typepåstand ved kompilering og gir ingen beskyttelse under kjøring. Object.freeze gjelder under kjøring. De to har komplementære roller.
const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const; // compile-time literal typesConst-assertions kontra typeannotasjoner
En typeannotasjon utvider typen: const x: string = "hi" gir typen string. as const innsnevrer typen: const x = "hi" as const gir "hi".
const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"Praktisk bruk: enum-lignende objekter
Mange kodebaser bruker objekter med as const som et alternativ til enum, slik at de unngår fallgruvene ved enum og samtidig beholder typesikkerheten.
const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"Oppsummering: as const
as const gjør at TypeScript utleder literaltyper og behandler alle egenskaper som readonly. Det er nødvendig for å utlede presise union-typer fra arrayer og bygge sikre konfigurasjonsobjekter.
Hurtigsjekk
Hva gjør as const med en array?
Dette har du lært
as const er et kraftig verktøy for å låse fast literaltyper, opprette readonly-strukturer og utlede presise union-typer fra arrayer. Det er en grunnleggende del av avanserte TypeScript-mønstre.
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 «const-assertions og as const» gratis?
Ja – hele teksten i «const-assertions og as const» 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 «const-assertions og as const»?
Bruk as const for å utlede litteral- og tupletyper nøyaktig. 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 «const-assertions og as const»?
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
- Mekanismer for typeutvidelse og -innsnevring
- Kontekstuell typing: utledning fra kontekst
- Freshness og sjekk av overflødige egenskaper
- const-assertions og as const