typescript / intermediate
Snippet
Defensives Kopieren und Eigenschafts-Versiegelung für Sichere Status-Objekte
Defensives Kopieren trennt das Ergebnis von externen Referenzänderungen, während Object.preventExtensions und Object.freeze Unveränderlichkeits-Invarianten zur Laufzeit erzwingen.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
interface AppConfig {readonly endpoint: string;readonly retries: number;}function createImmutableConfig(input: AppConfig): Readonly<AppConfig> {const copy: AppConfig = {endpoint: input.endpoint,retries: input.retries};Object.preventExtensions(copy);return Object.freeze(copy);}
Erklärung
1
function createImmutableConfig(input: AppConfig): Readonly<AppConfig> {
Nimmt ein Konfigurationsobjekt entgegen und liefert eine typsichere, unveränderliche Version zurück.
2
const copy: AppConfig = { endpoint: input.endpoint, retries: input.retries };
Führt ein defensives Kopieren primitiver Eigenschaften durch, um externe Abhängigkeiten zu trennen.
3
Object.preventExtensions(copy);
Verhindert zur Laufzeit das Hinzufügen neuer Eigenschaften zum kopierten Objekt.
4
return Object.freeze(copy);
Sperrt bestehende Eigenschaften gegen Löschung oder Änderung zur Sicherstellung von Testinvarianten.