📘 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