Accessors trong OOP trong TypeScript
Cũng giống như trong JavaScript thuần túy, trong TypeScript bạn có thể tạo các accessors cho thuộc tính: getters và setters.
Tuy nhiên, trong TypeScript, tên của accessors không
được trùng với tên của các thuộc tính. Hãy cùng
xem xét trong thực tế. Hãy tạo các accessors
cho thuộc tính private name. Nếu
đặt tên cho các accessors cũng là name,
thì code như vậy sẽ báo lỗi:
class User {
private name: string = '';
public set name(name: string) { // sẽ báo lỗi
this.name = name;
}
public get name(): string {
return this.name;
}
}
Hãy sửa vấn đề, ví dụ, bằng cách đổi tên thuộc tính private:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
Hãy tạo lớp User, chứa
các thuộc tính private với tên và tuổi.
Hãy tạo các accessors cho các thuộc tính này.
Hãy sửa đổi setter của tuổi để
có thể đặt tuổi từ 0 đến
120. Nếu một giá trị khác
được chỉ định, một ngoại lệ cần được ném ra.