typescript / intermediate
Snippet
Tiefgehende Unveränderlichkeit mit Const-Assertions
Const-Assertions (`as const`) wandeln Objektliterale und Arrays rekursiv in schreibgeschützte Literaltypen um. Dies verhindert Änderungen an Eigenschaften und erzwingt exakte Werte anstelle breiterer Typen wie string oder number.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
const appConfig = {endpoint: "https://api.example.com",timeoutMs: 5000,features: ["auth", "logging"]} as const;type AppConfig = typeof appConfig;function connect(config: AppConfig) {console.log(`Connecting to ${config.endpoint}`);}connect(appConfig);
Erklärung
1
const appConfig = { ... } as const;
Wendet die Const-Assertion an, um alle Eigenschaften rekursiv schreibgeschützt und mit exakten Werten zu typisieren.
2
type AppConfig = typeof appConfig;
Extrahiert den exakten schreibgeschützten Typen mit dem `typeof`-Operator von TypeScript.
3
function connect(config: AppConfig) {
Akzeptiert nur Objekte, die exakt dem unveränderlichen Konfigurationsschema entsprechen.