Private-modifikaattori TypeScriptissä

Modifikaattoria private käytetään tilanteissa, joissa ominaisuuksien ja menetelmien käyttö on suljettava luokan ulkopuolelta. Tällöin jopa aliluokissa ei voida viitata kyseisiin ominaisuuksiin.

Katsotaan esimerkkiä. Tehdään luokkaan User yksityinen ominaisuus name:

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

Luodaan luokan olio välittämällä konstruktorille ominaisuutemme arvo:

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

Nyt yritys lukea tämä yksityinen ominaisuus luokan ulkopuolella johtaa virheeseen:

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

Myös yritys kirjoittaa jotain tähän ominaisuuteen luokan ulkopuolella johtaa virheeseen:

typescriptuser.name = 'eric'; // virhe

Luokan menetelmien sisällä voidaan kuitenkin sekä lukea että muuttaa yksityisen ominaisuutemme arvoa:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public getName() {
    return this.name; // luetaan ominaisuus
  }
  
  public setName(name: string) {
    this.name = name; // kirjoitetaan uusi arvo ominaisuuteen
  }
}
Задание 1

Tee luokka User, joka sisältää yksityiset ominaisuudet nimelle ja iälle. Alkuarvot asetetaan konstruktorin kautta.

Задание 2

Tee luokassasi User julkiset menetelmät getName ja getAge, jotka mahdollistavat vastaavien yksityisten ominaisuuksien arvojen saamisen.

Задание 3

Tee luokassasi User julkiset menetelmät setName ja setAge, jotka mahdollistavat vastaavien yksityisten ominaisuuksien arvojen muuttamisen.