TypeScript-da protected modifikatori
Xususiy xususiyatlar va metodlar vorislik orqali o'tmaydi.
Ba'zida, shunday bo'ladiki, biz xususiyat yoki metod tashqaridan
kirish mumkin bo'lmasin, lekin voris tomonidan meros qilib olinishi kerak.
Bunday hollarda protected modifikatoridan foydalanish kerak.
Keling, amalda sinab ko'raylik. User klassimizda
cape metodini protected modifikatori yordamida
himoyalangan qilib e'lon qilaylik:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
User klasidan voris oladigan Student
klasini yaratamiz:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Ismni chiqaradigan metod qo'shamiz:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Endi voris metodining ichida ota-klassning himoyalangan metodidan foydalanamiz:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // ota-klass metodidan foydalanamiz
}
}
Klassimizning ob'ektini yaratamiz:
let student: Student = new Student('john');
Studentni chiqarish uchun metoddan foydalanamiz:
console.log(student.showName());
cape metodini klass tashqarisidan chaqirishga
urinish esa xatolikka olib keladi:
console.log(student.cape('test')); // xatolik
Quyidagi klass berilgan:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Ushbu klasdan Employee klasini voris qiling,
u himoyalangan salary xususiyatini qo'shsin,
shuningdek, o'zining va meros qilib olingan barcha
xususiyatlarning getterlarini qo'shsin.