Почему ребята из Typescript создали ключевое слово infer
? Согласно документам, это пример того, как вы будете его использовать:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;
Я не понимаю, зачем это нужно. Почему нельзя просто:
type ReturnType<T> = T extends (...args: any[]) => R ? R : any;
Почему это не работает? Зачем нужно ключевое слово infer
?