NoInfer
Когда T встречается в нескольких аргументах, TypeScript выводит его из всех сразу и подбирает тип, под который подойдут все кандидаты. Обычно это удобно, но иногда один из аргументов должен только проверяться против T, а не участвовать в его выводе.
В задании функция берёт первый элемент списка или запасное значение:

