Аксессоры в ООП в 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
.
Если же будет указано иное
значение, должно выбрасываться
исключение.