TypeScript-тегі protected модификаторы
Приваттік қасиеттер мен әдістер мұрагерлерге
берілмейді. Кейде, бізге қасиет немесе әдіс
сырттан қол жетімді болмауы керек, бірақ
мұрагерлерде болуы керек. Бұл жағдайда
protected модификаторын қолдану керек.
Тәжірибеде көрейік. User сыныбымызда
cape әдісін protected модификаторымен
қорғалған деп жариялайық:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
User сыныбынан мұраға алған Student
сыныбын жасайық:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Атын шығаратын әдісті қосамыз:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Енді әке әдісінің қорғалған әдісін мұрагер әдісінің ішінде қолданайық:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // әке әдісін қолдану
}
}
Сыныбымыздың нысанын жасайық:
let student: Student = new Student('john');
Студентті шығару үшін әдісті қолданайық:
console.log(student.showName());
Ал cape әдісін сырттан шақыруға
тырысу қатеге әкеледі:
console.log(student.cape('test')); // қате
Мына сынып берілген:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Осы сыныптан Employee сыныбын мұраға алыңыз,
ол қорғалған salary қасиетін қосады,
сондай-ақ өздерінің де, мұраға алынғандардың да
барлық қасиеттерінің геттерін қосады.