⊗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; }

Әрі біздің функциямызда extends кілт сөзі арқылы ILength-тен мұраға беретін жалпыланған типті берейік:

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
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау