Sobes.tech
Junior — Middle

Pode explicar a finalidade e o uso do operador Infer em TypeScript?

sobes.tech IA

Resposta da IA

O operador infer em TypeScript é usado dentro de tipos condicionais para extrair um tipo de outro tipo. Ele permite declarar uma variável de tipo que o TypeScript deduzirá automaticamente se a condição for verdadeira.

Isto é útil quando precisa obter um tipo de uma estrutura complexa, por exemplo, o tipo de um elemento de array, o valor de retorno de uma função, etc.

Exemplo de uso:

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

function foo() {
  return 42;
}

type FooReturn = ReturnType<typeof foo>; // FooReturn será number

Aqui, infer R indica: se o tipo T for uma função, então extraia o tipo de retorno e atribua a R. Se a condição não for satisfeita, retorna any.

Assim, infer ajuda a criar tipos mais flexíveis e poderosos, extraindo tipos aninhados de outros tipos.