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:
typescriptclass User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
User klasidan voris oladigan Student
klasini yaratamiz:
typescriptclass Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Ismni chiqaradigan metod qo'shamiz:
typescriptclass 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:
typescriptclass 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:
typescriptlet student: Student = new Student('john');
Studentni chiqarish uchun metoddan foydalanamiz:
typescriptconsole.log(student.showName());
cape metodini klass tashqarisidan chaqirishga
urinish esa xatolikka olib keladi:
typescriptconsole.log(student.cape('test')); // xatolik
Quyidagi klass berilgan:
typescriptclass 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.