Wie kann man in einer TypeScript-Klasse eine schreibgeschützte Eigenschaft deklarieren?

Erklärung zur Deklaration von schreibgeschützten Eigenschaften in TypeScript-Klassen

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.

Related Questions

Finden Sie das nützlich?