⊗tsSpGnPTL 36 of 37 menu

ტიპის პარამეტრების გამოყენება ჯენერიკების შეზღუდვებში TypeScript-ში

ასევე TypeScript-ში არსებობს შესაძლებლობა ერთი ტიპის პარამეტრის განსაზღვრის, რომელიც შეზღუდული იქნება სხვა ტიპის პარამეტრით. ეს აუცილებელია, როდესაც გვჭირდება თვისებების კოპირება ერთი ობიექტიდან მეორეში, ამასთანავე დავიცვათ თავი იმისგან, რომ არ გადავცეთ დამატებითი თვისება.

მოდით განვიხილოთ შემდეგი მაგალითი. კვლავ დავუბრუნდეთ ფუნქციას myFunc, რომელიც განსაზღვრავს ცვლადის სიგრძეს:

function myFunc <T> (data: T): T { console.log(data.length); // შეცდომა return data; }

თუმცა ახლა ჩვენ გვსურს, რომ ეს ფუნქცია მუშაობდეს მხოლოდ იმ ტიპებთან, რომელთაც გააჩნიათ თვისება length. ამისთვის შევქმნათ ინტერფეისი ILength, რომელსაც მივანიჭებთ თვისებას length რიცხვითი ტიპის:

interface ILength { length: number; }

შემდეგ ჩვენს ფუნქციაში განვსაზღვროთ ჯენერიკული ტიპი, რომელიც მემკვიდრეობით მიიღებს ILength-ს გასაღები სიტყვის extends მეშვეობით:

function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

აი, როგორ გამოიყურება ჩვენი სრული კოდი:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

მოდით შევამოწმოთ ჩვენი ფუნქციის მუშაობა და ვიპოვოთ სტრიქონის სიგრძე:

console.log(myFunc('abcde'));

შესრულებული კოდის შედეგი:

5 'abcde'

ახლა კი პარამეტრად გადავცეთ მასივი:

console.log(myFunc(['a', 'b', 'c']));

შესრულებული კოდის შედეგი:

3 [ 'a', 'b', 'c' ]
ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა