📘 TypeScript
Функции TypeScript и сигнатуры типов
Типизированные параметры функций
function add(a: number, b: number): number {
return a + b;
}
const greet = (name: string): string => {
return `Привет, ${name}!`;
};
// Неявный возвращаемый тип (выводится)
const square = (x: number) => x * x;
Необязательные и параметры по умолчанию
function greet(name: string, greeting?: string): string {
return `${greeting ?? "Привет"}, ${name}!`;
}
console.log(greet("Алиса")); // Привет, Алиса!
console.log(greet("Боб", "Здравствуй")); // Здравствуй, Боб!
function createUser(name: string, role: string = "user") {
return { name, role };
}
Типы функций
type MathOp = (a: number, b: number) => number;
const add: MathOp = (a, b) => a + b;
const multiply: MathOp = (a, b) => a * b;
function applyOp(a: number, b: number, op: MathOp): number {
return op(a, b);
}
console.log(applyOp(3, 4, multiply)); // 12
Rest-параметры
function sum(...numbers: number[]): number {
return numbers.reduce((acc, n) => acc + n, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15
Обобщённые функции (Generics)
function identity(value: T): T {
return value;
}
function first(arr: T[]): T | undefined {
return arr[0];
}
console.log(identity("привет")); // привет
console.log(first([10, 20, 30])); // 10
console.log(first(["a", "b", "c"])); // a