Accessors i OOP i TypeScript
Precis som i ren JavaScript, kan man i TypeScript skapa accessors (åtkomstmetoder) för egenskaper: getters och setters.
I TypeScript får dock namnen på accessors inte
stämma överens med namnen på egenskaperna. Låt oss
se på ett praktiskt exempel. Vi skapar accessors
för den privata egenskapen name. Om
vi ger accessors samma namn name,
kommer denna kod att ge ett fel:
class User {
private name: string = '';
public set name(name: string) { // kommer att ge ett fel
this.name = name;
}
public get name(): string {
return this.name;
}
}
Vi åtgärdar problemet, till exempel genom att byta namn på den privata egenskapen:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Skapa en klass User som innehåller
privata egenskaper för namn och ålder.
Skapa accessors för dessa egenskaper.
Modifiera settern för ålder så att
ålder endast kan sättas mellan 0 och
120. Om ett annat värde anges ska ett undantag kastas.