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:
class User {
private name: string;
constructor(name: string) {
this.name = name;
}
}
Luodaan luokan olio välittämällä konstruktorille ominaisuutemme arvo:
let user: User = new User('john');
Nyt yritys lukea tämä yksityinen ominaisuus luokan ulkopuolella johtaa virheeseen:
console.log(user.name); // virhe
Myös yritys kirjoittaa jotain tähän ominaisuuteen luokan ulkopuolella johtaa virheeseen:
user.name = 'eric'; // virhe
Luokan menetelmien sisällä voidaan kuitenkin sekä lukea että muuttaa yksityisen ominaisuutemme arvoa:
class 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
}
}
Tee luokka User, joka sisältää
yksityiset ominaisuudet nimelle ja iälle.
Alkuarvot asetetaan konstruktorin kautta.
Tee luokassasi User julkiset menetelmät
getName ja getAge,
jotka mahdollistavat vastaavien yksityisten
ominaisuuksien arvojen saamisen.
Tee luokassasi User julkiset menetelmät
setName ja setAge,
jotka mahdollistavat vastaavien yksityisten
ominaisuuksien arvojen muuttamisen.