Аксессоры в ООП в TypeScript
Также, как и в чистом JavaScript, в TypeScript можно делать аксессоры свойств: геттеры и сеттеры.
В TypeScript, однако, имена аксессоров не
должны совпадать с именами свойств. Давайте
посмотрим на практике. Сделаем аксессоры
для приватного свойства name
. Если
имена для аксессоров дать тоже name
,
то такой код выдаст ошибку:
class User {
private name: string = '';
public set name(name: string) { // выдаст ошибку
this.name = name;
}
public get name(): string {
return this.name;
}
}
Исправим проблему, например, переименовав приватное свойство:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Сделайте класс User
, содержащий
приватные свойства с именем и возрастом.
Сделайте аксессоры этих свойств.
Модифицируйте сеттер возраста так, чтобы
можно было задать возраст от 0
до
120
. Если же будет указано иное
значение, должно выбрасываться исключение.