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