const-assertions en as const
Gebruik as const om letterlijke en tupletypen nauwkeurig af te leiden.
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 literalRecursief 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: readonlyas 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 typesConst-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.
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
- Mechanismen voor type widening en narrowing
- Contextueel typen: afleiding uit de context
- Freshness en controle op overtollige eigenschappen
- const-assertions en as const