Kirekebishi protected katika TypeScript
Sifa na mbinu za kibinafsi hazirithiwi
na wazao. Wakati mwingine, hata hivyo, tunahitaji
sifa au mbinu isipatikane nje,
lakini irithiwe na wazao. Katika hali hii
inapaswa kutumia kirekebishi
protected.
Wacha tujaribu kwa vitendo. Tangee katika
darasa letu User mbinu cape
kama ilinziwa kwa kutumia kirekebishi protected:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
Tufanye darasa Student, linalorithi
kutoka kwa darasa User:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
Tuongeze mbinu, inayoonyesha jina:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
Sasa tutumie mbinu iliyolindwa ya mzazi ndani ya mbinu ya mzao:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // tunatumia mbinu ya mzazi
}
}
Tutengeneze kitu cha darasa letu:
let student: Student = new Student('john');
Tutumie mbinu ya kuonyesha mwanafunzi:
console.log(student.showName());
Lakini jaribio la kuita mbinu cape
ngje litasababisha hitilafu:
console.log(student.cape('test')); // hitilafu
Kuna darasa lifuatalo:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
Rithi kutoka kwa darasa hili darasa Employee,
ambalo litaongeza sifa iliyolindwa salary,
na pia vitafutaji vya sifa zote, zake mwenyewe,
na zilizorithiwa.