TypeScript перегрузки стали понятнее
Перегрузки в TypeScript позволяют одной функции поддерживать несколько сценариев вызова и точнее выводить типы аргументов и результата. Для старого API можно добавить новую сигнатуру, не ломая существующие вызовы, если реализация принимает объединённые типы.
https://habr.com/ru/articles/1096858/
https://habr.com/ru/articles/1096858/