Back to questions
Junior — Middle
91
Можете объяснить назначение и работу ключевого оператора infer в языке TypeScript?
Answer from AI
sobes.tech AI
Оператор infer в TypeScript используется внутри условных типов для вывода (выделения) типа из другого типа. Он позволяет объявить переменную типа, которая будет автоматически выведена компилятором, если условие типа выполняется.
Например, если у вас есть тип функции, и вы хотите получить тип её аргумента или возвращаемого значения, можно использовать infer для извлечения этих типов:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
// Пример использования:
type Fn = (x: number) => string;
type Result = ReturnType<Fn>; // Result будет string
Здесь infer R говорит компилятору: "если тип T соответствует функции, то выведи тип возвращаемого значения как R". Это мощный инструмент для создания обобщённых и условных типов, позволяющий работать с типами более гибко и динамично.