TypeScript · Avançado · Inglês · Técnico
infer
Palavra-chave usada dentro de um tipo condicional para capturar parte de um tipo em uma nova variável de tipo, como em T extends Promise<infer U> ? U : never.
Onde usar
É o que permite extrair tipos de dentro de outros: o retorno de funções, o elemento de arrays, o valor de Promises. ReturnType e Awaited são escritos com ela.
Em código
type Ret<F> = F extends (...a: any) => infer R
? R
: never;
type A = Ret<() => string>; // string
type El<T> = T extends (infer I)[] ? I : T;
type B = El<number[]>; // numberExemplos
Use infer to pull the element type out of the array.
Use infer para tirar o tipo do elemento do array.
ReturnType is just a conditional type with infer.
ReturnType é só um tipo condicional com infer.
Cuidado
O infer só é permitido na cláusula extends de um tipo condicional, e a variável capturada só existe no ramo verdadeiro.