Die protected modifier in TypeScript
Private eienskappe en metodes word nie deur nakomelinge geërf nie.
Soms, eger, het ons nodig dat 'n
eienskap of metode nie van buite toeganklik is nie,
maar wel deur nakomelinge geërf word. In hierdie
geval moet die modifier
protected gebruik word.
Kom ons probeer dit in die praktyk. Laat ons in
ons klas User die metode cape
as beskermd verklaar deur die modifier protected te gebruik:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
Laat ons 'n klas Student maak, wat van
die klas User erf:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Kom ons voeg 'n metode by wat die naam vertoon:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
En nou gebruik ons die beskermde metode van die ouer binne 'n metode van die nakomeling:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // gebruik die metode van die ouer
}
}
Kom ons skep 'n objek van ons klas:
let student: Student = new Student('john');
Kom ons gebruik die metode om die student se naam te vertoon:
console.log(student.showName());
Maar 'n poging om die metode cape
van buite die klas te roep sal tot 'n fout lei:
console.log(student.cape('test')); // fout
Die volgende klas word gegee:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Erf van hierdie klas 'n klas Employee,
wat 'n beskermde eienskap salary sal byvoeg,
sowel as getters vir alle eienskappe, beide sy eie
en die geërfde eienskappe.