Что делает `NoInfer<T>` (TS 5.4+) и когда его использовать?
- Предотвращает вывод типа из определённой позиции
- Пример:
function createFSM<S>(initial: S, states: NoInfer<S>[])— S выводится ТОЛЬКО из initial, не из states - Ловит опечатки в допустимых значениях
- Полезно при нескольких позициях вывода, когда нужно контролировать, откуда выводится тип
- Реализован как intrinsic тип в компиляторе