Sobes.tech
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". Это мощный инструмент для создания обобщённых и условных типов, позволяющий работать с типами более гибко и динамично.