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.