Aksessorit OOP:ssa TypeScriptissä
Samoin kuin puhtaassa JavaScriptissä, myös TypeScriptissä voidaan tehdä aksessoreita ominaisuuksille: getterit ja setterit.
TypeScriptissä kuitenkin aksessorien nimet eivät
saa olla samat kuin ominaisuuksien nimet. Katsotaanpa
käytännössä. Tehdään aksessorit
yksityiselle ominaisuudelle name. Jos
aksessoreille annetaan nimeksi myös name,
tällainen koodi antaa virheen:
class User {
private name: string = '';
public set name(name: string) { // antaa virheen
this.name = name;
}
public get name(): string {
return this.name;
}
}
Korjataan ongelma esimerkiksi nimeämällä yksityinen ominaisuus uudelleen:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Tee luokka User, joka sisältää
yksityiset ominaisuudet nimelle ja iälle.
Tee näiden ominaisuuksien aksessorit.
Muokkaa iän setteriä siten, että
ikä voidaan asettaa välillä 0 -
120. Jos määritetään jokin muu
arvo, tulee nostaa poikkeus.