⊗tsSpOpAMPrt 11 of 37 menu

protected მოდიფიკატორი TypeScript-ში

პრივატური თვისებები და მეთოდები არ გადაეცემა მემკვიდრეებს. თუმცა, ზოგჯერ ჩვენ გვსურს, რომ თვისება ან მეთოდი არ იყოს ხელმისაწვდომი გარედან, მაგრამ გადაეცეს მემკვიდრეებს. ამ შემთხვევაში უნდა გამოვიყენოთ protected მოდიფიკატორი.

შევეცადოთ პრაქტიკაში. განვსაზღვროთ ჩვენს კლასში User მეთოდი cape როგორც დაცული protected მოდიფიკატორის გამოყენებით:

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

შევქმნათ კლასი Student, რომელიც მემკვიდრეობით მიიღებს კლას User-სგან:

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, ასევე ყველა თვისების გეთერებს, როგორც საკუთარი, ისე მემკვიდრეობით მიღებული.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა