⊗tsSpOpAMPrt 11 of 37 menu

Protected-modifikaattori TypeScriptissä

Yksityiset ominaisuudet ja metodit eivät periydy jalostajaluokkiin. Joskus kuitenkin tarvitsemme, että ominaisuus tai metodi eivät olisi saatavilla ulkopuolelta, mutta periytyisivät jalostajaluokkiin. Tässä tapauksessa tulisi käyttää modifikaattoria protected.

Kokeillaan käytännössä. Määritellään luokassamme User metodi cape suojatuksi käyttämällä modifikaattoria protected:

class User { protected cape(str: string) { return str[0].toUpperCase() + str.slice(1); } }

Tehdään luokka Student, joka perii luokalta User:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } }

Lisätään metodi, joka tulostaa nimen:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.name; } }

Ja nyt käytetään suojattua kantaluokan metodia jalostajaluokan metodin sisällä:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.cape(this.name); // käytetään kantaluokan metodia } }

Luodaan olio luokastamme:

let student: Student = new Student('john');

Käytetään metodia opiskelijan tulostamiseksi:

console.log(student.showName());

Mutta yritys kutsua metodia cape luokan ulkopuolelta johtaa virheeseen:

console.log(student.cape('test')); // virhe

Annettu seuraava luokka:

class User { protected name: string; protected surn: string; constructor(name: string, surn: string) { this.name = name; this.surn = surn; } }

Peri tästä luokasta luokka Employee, joka lisää suojatun ominaisuuden salary, sekä getterit kaikille ominaisuuksille, sekä omille että perityille.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää