TypeScript-daky protected modifikatory
Hususy aýratynlyklar we usullar
warisler tarapyndan miras alynmaýar. Emma käwagt,
bir aýratynlyk ýa-da usul daşardan elýeterli bolmaly däl,
ýöne warisler tarapyndan miras alynmaly. Bu ýagdaýda
protected modifikatory ulanylmaly.
Geliň amaly görkezeliň. Bizim User klasymyzda
cape usulyny protected modifikatory bilen
goragly hökmünde belleýäris:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
User klasymyzdan miras alýan
Student klasyny dözedeliň:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Ady çap edýän usul goşalyň:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Indi bolsa, ata-klasymyzyň goragly usulyny warisiň usuly içinde ulanýarys:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // ata-klasymyzyň usulyny ulanýarys
}
}
Klasymyzyň obýektini dözedeliň:
let student: Student = new Student('john');
Studenti çap etmek üçin usuldan peýdalanyň:
console.log(student.showName());
cape usulyny klasymyzyň daşyndan çagyrmaga
synanyşmak ýalňyşlyga getirer:
console.log(student.cape('test')); // ýalňyşlyk
Aşakdaky klas berlen:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Bu klasdan Employee klasyny miras alyň,
salary goragly aýratynlygyny goşan we
hem özüniň, hem-de miras alnan aýratynlyklarynyň
ähli getterlerini goşan.