Когда использовать перегрузки функций, а когда union типы?
- Union достаточен, если тип результата НЕ зависит от типа аргумента
- Перегрузки необходимы для точного маппинга: конкретный входной тип → конкретный выходной тип
- Conditional return type как альтернатива перегрузкам
- Перегрузки перегружают Intellisense — показывают все варианты вызова
- Перегрузки удобнее при нескольких разных сигнатурах с разным количеством параметров