Akcesory w OOP w TypeScript
Podobnie jak w czystym JavaScripcie, w TypeScript można robić akcesory właściwości: gettery i settery.
W TypeScript jednak nazwy akcesorów nie
mogą pokrywać się z nazwami właściwości. Spójrzmy
na praktyce. Zróbmy akcesory
dla prywatnej właściwości name. Jeśli
nazwy dla akcesorów dać też name,
to taki kod wyrzuci błąd:
class User {
private name: string = '';
public set name(name: string) { // wyrzuci błąd
this.name = name;
}
public get name(): string {
return this.name;
}
}
Poprawmy problem, na przykład, zmieniając nazwę prywatnej właściwości:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Zrób klasę User, zawierającą
prywatne właściwości z imieniem i wiekiem.
Zrób akcesory tych właściwości.
Zmodyfikuj setter wieku tak, żeby
można było ustawić wiek od 0 do
120. Jeśli będzie podana inna
wartość, powinien być wyrzucany wyjątek.