Mit TypeScript haben Entwickler die Möglichkeit, in ihren Klassen schreibgeschützte Eigenschaften zu erstellen. Diese Eigenschaften können nur einmal initialisiert werden - in der Regel beim Erstellen eines neuen Objekts dieser Klasse - und danach nicht mehr verändert werden. Dies wird durch das Schlüsselwort readonly
erreicht.
Das Schlüsselwort readonly
ist spezifisch für TypeScript und findet sich nicht im Standard-JavaScript. Es kann vor dem Datentyp einer Eigenschaft platziert werden, um diese als schreibgeschützt zu deklarieren.
Hier ist ein einfaches Beispiel:
class Auto {
readonly Marke: string;
constructor(marke: string) {
this.Marke = marke;
}
}
let meinAuto = new Auto("BMW");
console.log(meinAuto.Marke); // Ausgabe: BMW
meinAuto.Marke = "Audi"; // Fehler: IndexSignatur in Typ 'Auto' nur lesbar
In diesem Beispiel ist Marke
eine schreibgeschützte Eigenschaft der Klasse Auto
. Wenn Sie versuchen, die Marke
nach ihrer initialen Einstellung zu verändern, erhalten Sie einen Fehler.
Das Schlüsselwort const
in TypeScript und JavaScript wird verwendet, um eine Variable zu deklarieren, die nach ihrer initialen Zuweisung nicht mehr geändert werden kann. Jedoch ist const
idealerweise für Variablendeklarationen und nicht für Klasseneigenschaften.
Auf der anderen Seite werden die Schlüsselwörter static
und final
in TypeScript überhaupt nicht verwendet, um schreibgeschützte Eigenschaften zu erstellen. Das Schlüsselwort static
wird verwendet, um eine Eigenschaft oder Methode zu erstellen, die auf der Klasse selbst existiert und nicht auf Instanzen der Klasse. Das final
Schlüsselwort existiert nicht in TypeScript.
Das Verwenden von readonly
Eigenschaften in TypeScript ist eine hervorragende Methode, um die Unveränderlichkeit zu erzwingen und dabei zu helfen, den Code sicherer und vorhersehbarer zu machen. Es ist auch eine gute Praxis, den Zustand von Objekten so oft wie möglich unveränderlich zu machen, um Seiteneffekte zu vermeiden.