Ответ
Да, можно. В 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;
Также можно описывать перегрузки функций, указывая несколько сигнатур для одного типа.