⊗tsSpGnIms 35 of 37 menu

TypeScript-те жалпылау шектеулері

Алдыңғы сабақтардың бірінде біз өзіне берілген параметрдің ұзындығын шығаруы керек болған жалпыланған түрдің функциясын жасадық. Алайда компиляция кезінде бізге қате шықты, себебі барлық түрлерде ұзындық болмауы мүмкін:

function myFunc < T > (data: T): T { console.log(data.length); // қате return data; }

Сол жағдайда біз жалпыланған түрді жалпыланған массив түріне өзгерту арқылы жағдайды түзелттік. Бірақ TypeScript-те жалпылауларды шектеу мүмкіндігі бар. Ол үшін бұрышты жақшаларда, T айнымалысынан кейін extends кілт сөзін жазамыз. Одан кейін біз бұйра жақшаларда жол түріндегі str жаңа айнымалысын жазамыз. Функцияның қалған коды өзгеріссіз қалады:

function myFunc <T extends {str: string}> (data: T): void { console.log(data.str.length); }

Шығатыны, жалпыланған түр бұйра жақшаларда көрсетілген str айнымалысының түрін мұралайды. Енді функциямыздың жұмысын тексерейік және str түріне сілтеме жасайтын myStr айнымалысын жасап, оған бұйра жақшаларда мән берейік:

let myStr: {str: string} = {str: 'abcde'};

myFunc функциясын шапшаң шақырайық, оның түрін тағы да көрсетуді ұмытпаймыз және myStr айнымалысын параметр ретінде берейік:

myFunc <{str: string}> (myStr);

Сабақта қарастырылған мысал негізінде сандық массивтің ұзындығын табу функциясын жазыңыз.

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