TypeScript Academy · Les

const-assertions en as const

Gebruik as const om letterlijke en tupletypen nauwkeurig af te leiden.

Les 4 van 413 stappen

const-assertions en as const is een gratis TypeScript Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject TypeScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus TypeScript Academy bevat in totaal 4 lessen.

Wat is as const?

as const is een typebewering die TypeScript vertelt de meest specifieke letterlijke typen voor een expressie af te leiden en alle eigenschappen readonly te maken.

const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]

Verbreding voorkomen met as const

Zonder as const worden tekenreekswaarden in arrays en objecten verbreed naar string. Met deze aanduiding behouden ze hun letterlijke typen.

const dir1 = { direction: "left" };
// dir1.direction: string

const dir2 = { direction: "left" } as const;
// dir2.direction: "left"

as const bij objectliteralen

Elke eigenschap van een object met as const wordt readonly en behoudt recursief zijn letterlijke type.

const theme = {
  color: "dark",
  sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)

as const voor tupletypen

Arrays met as const worden readonly-tuples met letterlijke elementtypen — handig voor het definiëren van vaste lijsten met argumenten.

const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]

Unietypen afleiden uit as const

Een veelgebruikt patroon: definieer een as const-array met waarden en leid er vervolgens een unietype uit af met typeof en geïndexeerde toegang.

const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"

as const in functieargumenten

Je kunt as const rechtstreeks gebruiken bij het aanroepen van functies om letterlijke typen over de aanroepgrens heen te behouden.

function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literal

Recursief readonly

as const past Readonly recursief toe. Geneste objecten en arrays worden allemaal readonly, waardoor diepe wijzigingen worden voorkomen.

const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonly

as const versus Object.freeze

as const is een typebewering tijdens compilatie — het biedt geen bescherming tijdens uitvoering. Object.freeze werkt tijdens uitvoering. Ze vervullen elkaar aanvullende rollen.

const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const;      // compile-time literal types

Const-asserties versus typeannotaties

Een typeannotatie verbreedt het type: const x: string = "hi" geeft het type string. as const vernauwt het type: const x = "hi" as const geeft "hi".

const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"

Praktisch gebruik: enumachtige objecten

Veel codebases gebruiken objecten met as const als alternatief voor enums. Zo vermijden ze de valkuilen van enums en behouden ze toch typeveiligheid.

const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"

Samenvatting: as const

Met as const laat je TypeScript letterlijke typen afleiden en behandelt het alle eigenschappen als readonly. Dit is essentieel om precieze unietypen uit arrays af te leiden en veilige configuratieobjecten te bouwen.

Korte controle

Wat doet as const met een array?

Wat je hebt geleerd

as const is een krachtig hulpmiddel om letterlijke typen vast te leggen, readonly-structuren te maken en precieze unietypen uit arrays af te leiden. Het vormt een hoeksteen van geavanceerde TypeScript-patronen.

Gratis beginnen

Leer TypeScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
101
Lessen
352

Veelgestelde vragen

Is de les “const-assertions en as const” gratis?

Ja — de volledige tekst van “const-assertions en as const” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus TypeScript Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus TypeScript Academy bevat in totaal 4 lessen.

Wat leer ik in “const-assertions en as const”?

Gebruik as const om letterlijke en tupletypen nauwkeurig af te leiden. Je oefent met TypeScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met TypeScript Academy te beginnen?

Ervaring vooraf is niet nodig. TypeScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “const-assertions en as const”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over TypeScript Academy?

Ja. Elke les over TypeScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Mechanismen voor type widening en narrowing
  2. Contextueel typen: afleiding uit de context
  3. Freshness en controle op overtollige eigenschappen
  4. const-assertions en as const
← Terug naar TypeScript Academy