TypeScript: функции

Назад | Учебник TypeScript | Вперёд

TypeScript позволяет создавать как функциональные выражения, так и именованные функции. Работают они, в принципе, аналогично функциям в JavaScript.

Мы можем объявить переменную, имеющую тип функции с определёнными параметрами и возвращаемым значением:

В качестве типа переменной мы указываем список формальных параметров, а затем после => указываем возвращаемый тип. После возвращаемого типа после символа = описываем саму функцию.

В примере выше при описании типа переменной myHiMonster мы указывали имена формальных параметров, отличные от имён параметров в самой функции, но это необязательно. Можно было использовать те же самые имена:

Теперь мы можем обращаться к переменным myHiMonster и hiMonster, объявленным выше так, как вызывали бы обычную функцию:

Вовсе необязательно указывать тип в обоих частях, как мы делали это выше. TypeScript может вывести тип. Достаточно указать его в одной из частей:

При объявлении функций в TypeScript можно части параметров давать значения по умолчанию:

Как указано в последнем примере выше, если параметр со значением по умолчанию последний в списке параметров, то его можно не указывать, либо передать undefined, чтобы он принял значение по умолчанию. Если параметр со значением по умолчанию не последний в списке параметров, то нужно передать undefined, чтобы он принял значение по умолчанию.

Кроме параметров со значением по умолчанию можно ещё созадавать функции с необязательными параметрами. Для этого после имени параметра ставится знак вопроса. Необязательные параметры должны идти после обязательных:

Можно создавать функции с произвольным числом параметров. Для этого последний параметр функции объявляется с типом массива, а перед именем этого последнего параметра ставится троеточие:

TypeScript позволяет создавать функции с одинаковым именем, но различным типом и/или количеством аргументов. Это называется перегрузкой функций:

Как мы видим, создание перегруженных функций в TypeScript сильно отличается от создания перегруженных методов в Java. В TypeScript мы сначала объявляем список всех перегрузок, а потом пишем общую реализацию, учитывающую все возможные перегрузки. В Java же мы для каждой перегрузки имели своё тело метода.

Назад | Учебник TypeScript | Вперёд

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *