0Pricing
TypeScript Academy · Lektion

public-, private- und protected-Modifikatoren

Steuern Sie mit Modifikatoren den Zugriff auf Klassenmitglieder.

public-, private- und protected-Modifikatoren ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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

TypeScript-Zugriffsmodifizierer steuern die Sichtbarkeit von Klassen-Membern. Sie helfen dabei, die Kapselung durchzusetzen und unbeabsichtigte Verwendung zu verhindern.

public: Überall zugänglich

public ist die Standardeinstellung. Öffentliche Member sind überall zugänglich – innerhalb der Klasse, in Unterklassen und in externem Code.
class Car {
  public brand: string;
  constructor(brand: string) { this.brand = brand; }
}
const c = new Car('Toyota');
console.log(c.brand); // OK

private: Nur innerhalb der Klasse zugänglich

Private Member sind nur innerhalb der Klasse zugänglich, in der sie deklariert wurden. Unterklassen und externer Code können nicht auf sie zugreifen.
class BankAccount {
  private balance: number = 0;
  deposit(n: number) { this.balance += n; }
}
const a = new BankAccount();
// a.balance; // Error!

protected: Zugriff in Klasse und Unterklassen

Geschützte Member sind innerhalb der deklarierenden Klasse und jeder Unterklasse zugänglich, nicht jedoch in externem Code.
class Animal {
  protected name: string;
  constructor(name: string) { this.name = name; }
}
class Dog extends Animal {
  bark() { console.log(this.name + ' says woof!'); } // OK
}

Erzwingung nur zur Compilezeit

TypeScript-Zugriffsmodifizierer werden nur zur Compilezeit geprüft. Die JavaScript-Ausgabe enthält weiterhin öffentliche Eigenschaften – zur Laufzeit gibt es keine Erzwingung.

Private JavaScript-Felder mit #

JavaScript verfügt über native private Felder mit `#`, deren Zugriff zur Laufzeit erzwungen wird. TypeScript unterstützt diese Syntax zusätzlich zu seinem eigenen Schlüsselwort `private`.
class Counter {
  #count = 0; // runtime private (JavaScript)
  increment() { this.#count++; }
  get value() { return this.#count; }
}

readonly-Modifizierer

readonly-Eigenschaften können nur während der Konstruktion gesetzt werden. Nach der Initialisierung können sie nicht mehr geändert werden.
class User {
  readonly id: number;
  constructor(id: number) { this.id = id; }
}
const u = new User(1);
// u.id = 2; // Error!

Modifizierer kombinieren

Sie können Zugriffsmodifizierer mit readonly bei derselben Eigenschaft kombinieren.
class Config {
  constructor(
    public readonly host: string,
    private readonly port: number
  ) {}
}

private beim Konstruktor

Ein privater Konstruktor verhindert die Instanziierung von außerhalb. Verwenden Sie stattdessen statische Factory-Methoden.
class Singleton {
  private static instance: Singleton;
  private constructor() {}
  static getInstance(): Singleton {
    return this.instance ??= new Singleton();
  }
}

protected-Konstruktor

Ein geschützter Konstruktor verhindert die direkte Instanziierung, erlaubt es Unterklassen aber, ihn über super() aufzurufen.
class Base {
  protected constructor(public id: number) {}
}
class Derived extends Base {
  constructor(id: number) { super(id); }
}

Zugriffsmodifizierer verursachen keinen Laufzeit-Overhead

Da TypeScript alle Typinformationen entfernt, haben Zugriffsmodifizierer keinerlei Auswirkungen auf die Größe oder Leistung der kompilierten JavaScript-Ausgabe.

Schnellüberprüfung

Welcher Zugriffsmodifizierer macht einen Klassen-Member innerhalb der Klasse UND ihrer Unterklassen zugänglich, jedoch NICHT in externem Code?

Zusammenfassung

Verwenden Sie public (Standard) für zugängliche Member, private für gekapselte interne Member und protected für Member, die für Unterklassen vorgesehen sind. Fügen Sie readonly hinzu, um Änderungen nach der Konstruktion zu verhindern.

Häufig gestellte Fragen

Ist die Lektion „public-, private- und protected-Modifikatoren“ kostenlos?

Ja — der vollständige Text von „public-, private- und protected-Modifikatoren“ 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 „public-, private- und protected-Modifikatoren“?

Steuern Sie mit Modifikatoren den Zugriff auf Klassenmitglieder. 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 2 von 4.

Wie lange dauert die Lektion „public-, private- und protected-Modifikatoren“?

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