> Как работает перегрузка функций в TypeScript (TypeScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: ООО Премиум ИТ Солюшен

Стек: TypeScript

> Пример ответа

В TypeScript перегрузка функций (function overloading) - это механизм, позволяющий объявить несколько сигнатур для одной функции, чтобы она могла принимать аргументы разных типов и возвращать соответствующие результаты. Реализация отличается от языков вроде C++ или Java: в TypeScript перегрузка - это только объявление типов, а не несколько тел функции.

Работает так: вы пишете несколько «сигнатур перегрузки» (overload signatures) перед основной реализацией. Компилятор использует их для проверки типов при вызове. Сама реализация (implementation signature) должна быть совместима со всеми перегрузками, но не обязана быть видимой для внешнего кода.

Пример:

TYPESCRIPT
// Сигнатуры перегрузки
function process(value: string): string;
function process(value: number): number;
// Реализация (implementation)
function process(value: string | number): string | number {
if (typeof value === 'string') {
return value.toUpperCase();
} else {
return value * 2;
}
}
// Использование
const a = process('hello'); // тип string
const b = process(42); // тип number

Ключевые моменты:

  • Порядок сигнатур важен: TypeScript выбирает первую подходящую.

  • Реализация не учитывается для внешних вызовов - её тип не проверяется напрямую, но она должна покрывать все варианты.

  • Перегрузка часто используется для улучшения типизации API, например, в функциях, которые принимают разные форматы данных (строку, массив, объект) и возвращают соответствующий результат.

Таким образом, перегрузка в TypeScript - это инструмент статической типизации, а не динамического полиморфизма.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью