Как объявлять перегрузки функций (Function Overloads) в TypeScript?
- Несколько сигнатур перегрузки (видимы вызывающему) + одна сигнатура реализации (не видима)
- Порядок: от более узких к более общим
- Реализация должна покрывать все перегрузки с runtime-проверками
- Сигнатура реализации не может вызываться напрямую
- Intellisense показывает каждую перегрузку отдельно
- Альтернатива: union-аргументы + conditional return type (если выходной тип зависит от входного)