Тип функций в TypeScript

В JavaScript могут быть переменные, хранящие функции. В этом случае TypeScript позволяет нам указать, что эта переменная имеет тип "функция".

Тип функции представляет собой комбинацию типов параметров и типа возвращаемого значения. Эта комбинация называется сигнатурой функции.

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

Давайте посмотрим на примере. Объявим какую-нибудь переменную как содержащую функцию:

let func: (x: number, y: number) => number;

Запишем в эту переменную функцию заданного типа:

func = function(a: number, b: number): number { return a + b; };

Свой тип с функцией

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

type Func = (x: number, y: number) => number;

Затем можно будет объявлять функции с таким типом.

Давайте для примера объявим функцию, которая складывает два числа:

let func1: Func = function(a: number, b: number): number { return a + b; };

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

let func2: Func = function(a: number, b: number): number { return a * b; };

Практические задачи

Укажите переменной тип функции:

let func = function(text: string): void { alert(text); };