⊗tsSpGnIms 35 of 37 menu

Ограничения на генерализираните типове в TypeScript

В един от предишните уроци създавахме функция с генерализиран тип, която трябваше да извежда дължината на параметъра, подаден в нея. Въпреки това, при компилация получихме грешка, тъй като не всички типове могат да имат дължина:

function myFunc < T > (data: T): T { console.log(data.length); // грешка return data; }

В този случай поправихме ситуацията, като променихме генерализирания тип на тип на генерализиран масив. Но в TypeScript има възможност да се създадат ограничения за генерализираните типове. За това в ъгловите скоби, след променливата T пишем ключовата дума extends. След нея в фигурни скоби записваме нова променлива str от тип string. Останалата част от кода на функцията остава без промени:

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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне