Можно ли описать в TypeScript тип самописной функции

«Можно ли описать в TypeScript тип самописной функции» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В TypeScript тип функции описывается с помощью сигнатуры, где указываются типы параметров и возвращаемого значения.

Пример:

type MyFunction = (param1: string, param2: number) => boolean;

const myFunc: MyFunction = (str, num) => {
  return str.length > num;
};

Для функций с необязательными параметрами или параметрами по умолчанию:

type OptionalParamFunc = (required: string, optional?: number) => void;

Для функций с остаточными параметрами:

type RestParamsFunc = (...args: number[]) => number;

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