⊗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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу