⊗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 փոփոխականի տիպը, որը նշված է ձևավոր փակագծերում: Հիմա եկեք ստուգենք մեր ֆունկցիայի աշխատանքը և ստեղծենք myStr փոփոխականը, որը հղվում է str տիպին, և նշենք դրա արժեքը ձևավոր փակագծերում:

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

Եկեք կանչենք myFunc ֆունկցիան՝ կրկին չմոռանալով նշել դրա տիպը և փոխանցենք myStr փոփոխականը որպես պարամետր:

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

Դասում դիտարկված օրինակի հիման վրա սահմանեք թվային զանգվածի երկարությունը գտնելու ֆունկցիա:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել