Sobes.tech
Junior — Middle

TypeScript-də Infer operatorunun məqsədi və istifadəsini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Оператор infer в TypeScript используется внутри условных типов для извлечения типа из другого типа. Он позволяет объявить переменную типа, которую TypeScript выведет автоматически, если условие выполняется.

Это полезно, когда нужно получить тип из сложной структуры, например, тип элемента массива, возвращаемого значения функции и т.п.

Пример использования:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;

function foo() {
  return 42;
}

type FooReturn = ReturnType<typeof foo>; // FooReturn будет number

Здесь infer R говорит: если тип T является функцией, то выведи тип возвращаемого значения и присвой его R. Если условие не выполняется, возвращается any.

Таким образом, infer помогает создавать более гибкие и мощные типы, извлекая вложенные типы из других типов.