Das Schlüsselwort readonly
in TypeScript stellt einen Modifizierer dar, der für Eigenschaften in einer Klasse oder einen Indexsignaturtyp verwendet werden kann. Das Hinzufügen von readonly
vor der Deklaration einer Eigenschaft bedeutet, dass diese Eigenschaft nur gelesen und nicht verändert werden kann.
Das erklärte Ziel ist laut der korrekten Antwort in der Quizfrage, "eine Variable unveränderlich zu machen". Dies ist besonders nützlich in Situationen, in denen Sie Datenimmunität benötigen oder Datenhaben, die nach der ursprünglichen Zuweisung nicht geändert werden sollten.
Betrachten Sie das folgende Beispiel:
class Punkt {
readonly x: number;
readonly y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
let p = new Punkt(10, 20);
console.log(p.x); // 10
p.x = 5; // Fehler: X ist schreibgeschützt und kann nicht geändert werden
In diesem Fall können x
und y
nur während der Deklaration oder im Konstruktor der Klasse Punkt initialisiert oder zugewiesen werden. Versuche zur Änderung der Werte zu einem späteren Zeitpunkt führen zu einem Kompilierungsfehler.
Die Verwendung des Schlüsselworts "readonly" ist eine gute Praxis in TypeScript, da es dazu beiträgt, die Unveränderlichkeit und Stabilität des Codes sicherzustellen, was zu weniger Fehlern führt.
Beachten Sie jedoch, dass readonly
Posten nicht unveränderlich sind. Wenn der Wert eines readonly
-Postens ein Objekt ist, können die Eigenschaften dieses Objekts verändert werden. readonly
stellt sicher, dass die Variable selbst nicht neuzuweisen ist, garantiert aber nicht, dass ihr Inhalt unveränderlich ist.