Типы функций
«Каждая функция имеет тип, представляющий собой сочетание типов параметров и типа возвращаемого значения.»
Синтаксис типа функции
let sum = (x: number, y: number): number => x + y
// Тип: (x: number, y: number) => number
// Переменная с типом функции
let op: (x: number, y: number) => number
// Type alias
type BinaryOp = (a: number, b: number) => number
const multiply: BinaryOp = (a, b) => a * b
Функции обратного вызова
let mathOp = (
x: number,
y: number,
operation: (a: number, b: number) => number
): number => {
return operation(x, y)
}
mathOp(10, 5, (a, b) => a + b) // 15
mathOp(10, 5, (a, b) => a * b) // 50
Дженерики
function identity<T>(value: T): T {
return value
}
identity<string>('hello') // 'hello'
identity(42) // 42 (тип выведен)