НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗tsSpGnTV 30 of 37 menu

Типовые переменные в TypeScript

Для лучшего понимания концепции дженериков давайте создадим нашу первую функцию - функцию-тождество. Такая функция возвращает точно то, что ей передали - с тем же типом.

Давайте для начала напишем варианты нашей функции по отдельности.

Напишем функцию, которая параметром принимает число и возвращает число:

function func(data: number): number { return data; }

Теперь напишем функцию, которая параметром принимает строку и возвращает строку:

function func(data: string): string { return data; }

Пусть теперь мы хотим сделать так, чтобы это все делала одна функция. To есть мы хотим выполнить обобщение.

Для этого мы используем типовую переменную, которая сохраняет в себя тип данных. Такая переменная объявляется в угловых скобках перед круглыми скобками с параметрами функции. Давайте объявим такую переменную, дав ей имя T (можно любое):

function func <T>(тут параметры) { return data; }

После этого у нас появится переменная T, которую можно будет использовать, чтобы положить в нее тип параметра, а затем указать его в качестве возвращаемого значения.

Укажем нашему параметру тип в виде нашей переменной:

function func <T>(data: T) { return data; }

Получится, что параметр может быть передан в любом типе, и этот тип сохранится в нашу переменную T.

Теперь используем значение переменной T в качестве указания результата функции:

function func <T>(data: T): T { return data; }

Теперь получится, что тип результата функции будет получаться из типа параметра. Давайте проверим.

Вызовем функцию с числом:

console.log( func(3) ); // выведет 3

Вызовем функцию со строкой:

console.log( func('x') ); // выведет 'x'

Сделайте функцию, которая параметром принимает или два числа, или две строки. Своим результатом функция должна возвращать сумму параметров.

Русский
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить