Ответ
Перегрузка функции в TypeScript позволяет определить несколько сигнатур для одной функции, чтобы она могла принимать разные типы параметров и возвращать разные типы значений. Это полезно, когда функция может работать с разными входными данными.
function greet(name: string): string;
function greet(names: string[]): string[];
function greet(input: string | string[]): string | string[] {
if (typeof input === 'string') {
return `Hello, ${input}`;
} else {
return input.map(name => `Hello, ${name}`);
}
}
const single = greet('Alice'); // string
const multiple = greet(['Bob', 'Charlie']); // string[]
Важно: реализации должна быть совместима со всеми перегрузками. TypeScript будет использовать первую подходящую перегрузку при вызове функции.