TypeScriptda OOPda Aksessorlar
Xuddi sof JavaScriptda bo'lgani kabi, TypeScriptda ham xususiyatlar uchun aksessorlar yaratish mumkin: getterlar va setterlar.
Biroq, TypeScriptda aksessorlarning nomlari
xususiyatlarning nomlari bilan bir xil bo'lmasligi kerak.
Keling, amalda ko'rib chiqaylik. name maxsus
xususiyati uchun aksessorlar yarataylik. Agar
aksessorlar uchun ham name nomini bersak,
unday kod xatolik beradi:
class User {
private name: string = '';
public set name(name: string) { // xatolik beradi
this.name = name;
}
public get name(): string {
return this.name;
}
}
Muammoni, masalan, maxsus xususiyatni qayta nomlash orqali tuzatamiz:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
User klassini yarating, unda ism va yosh
maxfus xususiyatlari mavjud bo'lsin. Ushbu
xususiyatlar uchun aksessorlar yarating.
Yosh uchun setterni o'zgartiring, shunday qilib
yosh 0 dan 120 gacha belgilanishi
mumkin. Agar boshqa qiymat ko'rsatilsa, istisno
chiqarilishi kerak.