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