Sobes.tech
Junior — Middle

Kas saaksite selgitada Infer operaatori eesmärki ja kasutamist TypeScriptis?

sobes.tech AI

Vastus AI-lt

Оператор 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 помогает создавать более гибкие и мощные типы, извлекая вложенные типы из других типов.