- Вывод типа:
TypeScript имеет возможность выводить типы функций на основе их реализации. Это позволяет во многих случаях опускать явные объявления типов. Давайте рассмотрим пример:
function add(a: number, b: number) {
return a + b;
}
const result = add(5, 10); // TypeScript infers the return type as number
- Аннотации типов.
Иногда необходимо предоставить явные аннотации типов для параметров функции и возвращаемых типов. Это можно сделать, используя обозначение двоеточия. Рассмотрим следующий пример:
function greet(name: string): void {
console.log(`Hello, ${name}!`);
}
greet("John"); // Output: Hello, John!
- Сигнатуры функций:
Сигнатуры функций позволяют определить форму типа функции отдельно от ее реализации. Это полезно, если вы хотите создать повторно используемые типы функций. Вот пример:
type MathOperation = (a: number, b: number) => number;
const multiply: MathOperation = (a, b) => a * b;
const result = multiply(3, 4); // Output: 12
- Функции обратного вызова.
В TypeScript вы можете передавать функции в качестве аргументов другим функциям, обычно известным как функции обратного вызова. Указывая тип функции обратного вызова, вы обеспечиваете безопасность типов. Рассмотрим этот пример:
function doSomething(callback: (result: string) => void) {
const result = "Done!";
callback(result);
}
doSomething((result) => console.log(result)); // Output: Done!
- Функции высшего порядка.
Функции высшего порядка — это функции, которые либо принимают другие функции в качестве аргументов, либо возвращают функции. Это мощные инструменты для абстракции и повторного использования кода. Вот пример:
function multiplyBy(factor: number): (num: number) => number {
return (num) => num * factor;
}
const double = multiplyBy(2);
console.log(double(5)); // Output: 10
Понимание типов функций в TypeScript необходимо для написания выразительного и типобезопасного кода. В этой статье мы рассмотрели различные методы объявления типов функций, включая вывод типов, аннотации типов, сигнатуры функций, функции обратного вызова и функции высшего порядка. Используя эти методы, вы можете повысить ясность, удобство сопровождения и надежность своей базы кода TypeScript.