Aksessorid OOP-s TypeScriptis
Samuti nagu puhas JavaScriptis, saab TypeScriptis teha aksessoreid omadustele: getterid ja setterid.
TypeScriptis ei tohi aga aksessorite nimed
kattuda omaduste nimedega. Vaatame seda
praktikas. Teeme aksessorid privaatsele
omadusele name. Kui anda aksessoritele
samuti nimedeks name, annab selline
kood vea:
class User {
private name: string = '';
public set name(name: string) { // annab vea
this.name = name;
}
public get name(): string {
return this.name;
}
}
Parandame probleemi, näiteks muutes privaatse omaduse nime:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Tehke klass User, mis sisaldab
privaatseid omadusi nime ja vanusega.
Tehke nende omaduste aksessorid.
Muutke vanuse setterit nii, et vanust
saaks määrata vahemikus 0 kuni
120. Kui määratakse muu väärtus,
peab viskama erindi.