Junior — Middle
Pode explicar a finalidade e o funcionamento do operador-chave infer em TypeScript?
sobes.tech IA
Resposta da IA
A operação infer em TypeScript é usada dentro de tipos condicionais para extrair (ou inferir) um tipo de outro tipo. Ela permite declarar uma variável de tipo que será automaticamente inferida pelo compilador se a condição do tipo for satisfeita.
Por exemplo, se você tem um tipo de função e deseja obter o tipo do seu argumento ou valor de retorno, pode usar infer para extrair esses tipos:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
// Exemplo de uso:
type Fn = (x: number) => string;
type Result = ReturnType<Fn>; // Result será string
Aqui, infer R diz ao compilador: "se o tipo T corresponder a uma função, então extraia o tipo do valor de retorno como R". É uma ferramenta poderosa para criar tipos genéricos e condicionais, permitindo trabalhar com tipos de forma mais flexível e dinâmica.