0Pricing
TypeScript Academy · Lektion

readonly-Eigenschaften und Parameter-Eigenschaften

Verwenden Sie readonly und die Kurzschreibweise für Konstruktor-Eigenschaften.

readonly-Eigenschaften und Parameter-Eigenschaften ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

readonly verhindert, dass Eigenschaften nach der Initialisierung geändert werden. Parameter-Eigenschaften kombinieren Deklaration und Initialisierung in einer einzigen Konstruktorzeile.

readonly bei Klasseneigenschaften

Deklarieren Sie eine Eigenschaft als readonly, damit sie einmalig (im Konstruktor) gesetzt, aber später nicht mehr geändert werden kann.
class Invoice {
  readonly invoiceId: string;
  constructor(id: string) { this.invoiceId = id; }
}
const inv = new Invoice('INV-001');
// inv.invoiceId = 'INV-002'; // Error!

readonly in Interfaces

readonly funktioniert auch in Interfaces und Objekttypen, um die erneute Zuweisung von Eigenschaften zu verhindern.
interface Point { readonly x: number; readonly y: number; }
const p: Point = { x: 5, y: 10 };
// p.x = 0; // Error

Parameter-Eigenschaften

Stellen Sie einem Konstruktorparameter einen Zugriffsmodifizierer voran, um in einem Schritt eine Eigenschaft zu deklarieren und ihr einen Wert zuzuweisen.
class Product {
  constructor(
    public name: string,
    public price: number,
    private sku: string
  ) {} // no need to write this.name = name; etc.
}

readonly-Parameter-Eigenschaften

Kombinieren Sie `readonly` mit einem Zugriffsmodifizierer für Parameter-Eigenschaften.
class Config {
  constructor(
    public readonly host: string,
    public readonly port: number = 3000
  ) {}
}

Initialisierung in Deklarationen

Sie können eine readonly-Eigenschaft direkt bei der Deklaration initialisieren. Danach kann sie nicht mehr geändert werden.
class AppVersion {
  readonly version: string = '1.0.0';
  readonly buildDate: Date = new Date();
}

readonly vs. const

`const` gilt für Variablen mit Block-Scope. `readonly` gilt für Klasseneigenschaften und Member von Objekttypen. Sie beziehen sich auf unterschiedliche Gültigkeitsbereiche.
const API_KEY = 'secret'; // block variable
class Service {
  readonly key: string = API_KEY; // class property
}

Readonly-Objekttyp

Der Utility-Typ `Readonly` macht alle Eigenschaften von T zu readonly-Eigenschaften. Das eignet sich gut zum Erstellen unveränderlicher Momentaufnahmen.
interface User { name: string; age: number; }
const frozen: Readonly<User> = { name: 'Alice', age: 30 };
// frozen.name = 'Bob'; // Error

readonly führt nicht zu einem Deep Freeze

Wie ReadonlyArray verhindert readonly nur die erneute Zuweisung der Eigenschaft selbst – nicht die Veränderung des Objekts, auf das die Eigenschaft verweist.
class Team {
  readonly members: string[] = [];
}
const t = new Team();
t.members.push('Alice'); // Allowed — the array itself is mutable!
// t.members = []; // Error — can't reassign the property

Parameter-Eigenschaften vermeiden Boilerplate

Ohne Parameter-Eigenschaften müssen Sie das Feld deklarieren, den Konstruktorparameter deklarieren und die Zuweisung vornehmen. Mit ihnen erledigt eine einzige Zeile alle drei Schritte.
// Without parameter properties (verbose)
class A {
  private x: number;
  constructor(x: number) { this.x = x; }
}
// With parameter properties (concise)
class B {
  constructor(private x: number) {}
}

Wann Sie Parameter-Eigenschaften vermeiden sollten

Einige Teams vermeiden Parameter-Eigenschaften in großen Klassen, weil die Eigenschaftsdeklarationen dadurch im Klassenrumpf verborgen werden und die Übersichtlichkeit auf einen Blick abnimmt.

Schnellüberprüfung

Welche Aussage über den Modifizierer readonly bleibt bei Verwendung einer Parameter-Eigenschaft in TypeScript weiterhin richtig?

Zusammenfassung

readonly verhindert Änderungen an Eigenschaften nach der Konstruktion. Parameter-Eigenschaften (Zugriffsmodifizierer + Parametername) deklarieren und initialisieren Eigenschaften in einer Zeile. Kombinieren Sie beides für kompakte, unveränderliche Klassendesigns.

Häufig gestellte Fragen

Ist die Lektion „readonly-Eigenschaften und Parameter-Eigenschaften“ kostenlos?

Ja — der vollständige Text von „readonly-Eigenschaften und Parameter-Eigenschaften“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „readonly-Eigenschaften und Parameter-Eigenschaften“?

Verwenden Sie readonly und die Kurzschreibweise für Konstruktor-Eigenschaften. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um TypeScript Academy zu starten?

Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „readonly-Eigenschaften und Parameter-Eigenschaften“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. TypeScript-Klassen und Konstruktoren
  2. public-, private- und protected-Modifikatoren
  3. readonly-Eigenschaften und Parameter-Eigenschaften
  4. Interfaces mit Klassen implementieren
← Zurück zu TypeScript Academy