const-Assertions und as const
Verwenden Sie as const, um Literal- und Tupeltypen präzise abzuleiten.
const-Assertions und as const ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist as const?
as const ist eine Typ-Assertion, die TypeScript anweist, für einen Ausdruck die spezifischsten möglichen Literaltypen abzuleiten und alle Eigenschaften als readonly festzulegen.
const colors = ["red", "green", "blue"] as const;
// type: readonly ["red", "green", "blue"]Widening mit as const verhindern
Ohne as const werden Stringwerte in Arrays und Objekten zu string erweitert. Mit as const bleiben sie ihre Literaltypen.
const dir1 = { direction: "left" };
// dir1.direction: string
const dir2 = { direction: "left" } as const;
// dir2.direction: "left"as const bei Objekt-Literalen
Jede Eigenschaft eines Objekts mit as const wird rekursiv zu readonly und behält ihren Literaltyp.
const theme = {
color: "dark",
sizes: { sm: 8, md: 16 },
} as const;
// theme.color: "dark", theme.sizes.sm: 8 (all readonly)as const für Tupeltypen
Arrays mit as const werden zu readonly-Tupeln mit Literaltypen für ihre Elemente — nützlich zum Definieren fester Argumentlisten.
const args = [1, "hello", true] as const;
// type: readonly [1, "hello", true]Union-Typen aus as const ableiten
Ein gängiges Muster: Definieren Sie ein as const-Array mit Werten und leiten Sie daraus mithilfe von typeof und indiziertem Zugriff einen Union-Typ ab.
const STATUSES = ["pending", "active", "done"] as const;
type Status = typeof STATUSES[number];
// type Status = "pending" | "active" | "done"as const in Funktionsargumenten
Sie können as const beim Aufruf von Funktionen direkt inline verwenden, um Literaltypen über die Aufrufgrenze hinweg beizubehalten.
function setMode(mode: "dark" | "light") {}
setMode("dark" as const); // safe, preserves literalRekursive Readonly-Anwendung
as const wendet Readonly rekursiv an. Verschachtelte Objekte und Arrays werden vollständig readonly, wodurch tiefe Änderungen verhindert werden.
const config = { db: { host: "localhost", port: 5432 } } as const;
// config.db.port = 5433; // Error: readonlyas const und Object.freeze
as const ist eine Assertion zur Kompilierzeit und bietet keinen Laufzeitschutz. Object.freeze wirkt zur Laufzeit. Beide erfüllen sich ergänzende Aufgaben.
const obj = Object.freeze({ x: 1 }); // runtime immutability
const obj2 = { x: 1 } as const; // compile-time literal typesConst Assertions vs. Typannotierungen
Eine Typannotierung führt zu einem allgemeineren Typ: const x: string = "hi" hat den Typ string. as const führt zu einem spezifischeren Typ: const x = "hi" as const hat den Typ "hi".
const a: string = "hi"; // type: string
const b = "hi" as const; // type: "hi"Praktische Anwendung: Enum-ähnliche Objekte
In vielen Codebasen werden Objekte mit as const als Alternative zu Enums verwendet. So lassen sich typische Probleme von Enums vermeiden, während die Typsicherheit erhalten bleibt.
const Direction = { Up: "UP", Down: "DOWN" } as const;
type Direction = typeof Direction[keyof typeof Direction];
// "UP" | "DOWN"Zusammenfassung: as const
as const veranlasst TypeScript, Liter altypen zu inferieren und alle Eigenschaften als readonly zu behandeln. Das ist unerlässlich, um aus Arrays präzise Union-Typen abzuleiten und sichere Konfigurationsobjekte zu erstellen.
Kurzer Test
Was bewirkt as const bei einem Array?
Das haben Sie gelernt
as const ist ein leistungsstarkes Werkzeug, um Literaltypen festzuschreiben, readonly-Strukturen zu erstellen und aus Arrays präzise Union-Typen abzuleiten. Es gehört zu den Grundlagen fortgeschrittener TypeScript-Muster.
Häufig gestellte Fragen
Ist die Lektion „const-Assertions und as const“ kostenlos?
Ja — der vollständige Text von „const-Assertions und as const“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „const-Assertions und as const“?
Verwenden Sie as const, um Literal- und Tupeltypen präzise abzuleiten. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um TypeScript Academy zu starten?
Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „const-Assertions und as const“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Mechanismen von Type Widening und Narrowing
- Kontextbezogene Typisierung: Ableitung aus dem Kontext
- Freshness und Prüfung überschüssiger Eigenschaften
- const-Assertions und as const