Modificatorul private în TypeScript

Modificatorul private este aplicat în cazurile în care este necesar să restricționăm accesul la proprietăți și metode din exteriorul clasei. În acest caz, chiar și în clasele derivate nu se va putea accesa aceste proprietăți.

Să privim un exemplu. Să creăm în clasa User o proprietate privată name:

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

Să creăm un obiect al clasei, transmitând în constructor valoarea proprietății noastre:

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

Acum, încercarea de a citi această proprietate privată în afara clasei va duce la o eroare:

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

De asemenea, va duce la o eroare și încercarea de a scrie ceva în această proprietate din exteriorul clasei:

typescriptuser.name = 'eric'; // eroare

Însă, în interiorul metodelor clasei se va putea atât citi, cât și modifica valoarea proprietății noastre private:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public getName() {
    return this.name; // citim proprietatea
  }
  
  public setName(name: string) {
    this.name = name; // scriem o nouă valoare a proprietății
  }
}
Задание 1

Creați o clasă User care conține proprietăți private pentru nume și vârstă. Fie că valorile lor inițiale sunt setate prin constructor.

Задание 2

În clasa dvs. User creați metode publice getName și getAge, care permit obținerea valorilor proprietăților private corespunzătoare.

Задание 3

În clasa dvs. User creați metode publice setName și setAge, care permit modificarea valorilor proprietăților private corespunzătoare.