Private und Geschützte Member

In TypeScript kannst du ein Klassenmember als private markieren, um zu verhindern, dass von ausserhalb der Klasse darauf zugegriffen wird.

class Person {
  private name: string;

  constructor(name: string) {
    this.name = name;
  }

  public greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const person = new Person("Alice");
person.greet();

Du kannst auch einen Konstruktorparameter als private markieren, um automatisch ein privates Feld mit demselben Namen zu erstellen.

class Person {
  constructor(private name: string) {}

  public greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const person = new Person("Alice");
person.greet(); 

TypeScript unterstützt auch das Schlüsselwort protected, um geschützte Felder zu deklarieren.

class Person {
  protected name: string;
}

In diesem Beispiel ist name ein geschütztes Feld. Auf geschützte Felder kann nur von Unterklassen zugegriffen werden.

class Chef {
  public cook() {
    console.log("Cooking " + this.getDish());
  }
  
  protected getDish() {
    return "pasta";
  }
}

class SpecialChef extends Chef {
  public prepareSpecialDish() {
    console.log("Preparing special dish: " + this.getDish());
  }
}

const chef = new SpecialChef();
chef.cook();

Zuletzt aktualisiert