Modifikátor private v TypeScript

Modifikátor private se používá v případech, kdy je potřeba znepřístupnit přístup k vlastnostem a metodám zvenčí třídy. Přitom ani v potomních třídách nebude možné přistupovat k těmto vlastnostem.

Podívejme se na příklad. Vytvořme ve třídě User privátní vlastnost name:

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

Vytvořme objekt třídy, předáním do konstruktoru hodnotu naší vlastnosti:

typescriptlet user: User = new User('john');

Nyní pokus o přečtení této privátní vlastnosti mimo třídu povede k chybě:

typescriptconsole.log(user.name); // chyba

K chybě povede i pokus o zápis něčeho do této vlastnosti zvenčí třídy:

typescriptuser.name = 'eric'; // chyba

Zato uvnitř metod třídy bude možné jak číst, tak měnit hodnotu naší privátní vlastnosti:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public getName() {
    return this.name; // přečteme vlastnost
  }
  
  public setName(name: string) {
    this.name = name; // zapíšeme novou hodnotu vlastnosti
  }
}
Задание 1

Vytvořte třídu User, obsahující privátní vlastnosti s jménem a věkem. Nechť jejich počáteční hodnoty jsou zadány přes konstruktor.

Задание 2

Ve vaší třídě User vytvořte veřejné metody getName a getAge, umožňující získat hodnoty odpovídajících privátních vlastností.

Задание 3

Ve vaší třídě User vytvořte veřejné metody setName a setAge, umožňující změnit hodnoty odpovídajících privátních vlastností.