TypeScript · Avançado · Inglês · Técnico
NoInfer
Utility type do TS 5.4 que bloqueia a inferência de um parâmetro de tipo em certa posição. O tipo ali não influencia o T, apenas é conferido contra ele.
Onde usar
Usado quando um argumento deve servir só de referência para outro, como um valor padrão que precisa pertencer à lista de opções. Sem NoInfer, o padrão alargaria o T.
Em código
function cor<C extends string>(
opcoes: C[],
padrao: NoInfer<C>
) {}
cor(['red', 'blue'], 'red');
// cor(['red', 'blue'], 'green'); // erroExemplos
Wrap the default in NoInfer so it can't widen T.
Envolva o padrão em NoInfer para ele não alargar o T.
NoInfer stopped the wrong value from being accepted.
O NoInfer impediu que o valor errado fosse aceito.
Cuidado
Não impede o argumento de ser verificado; só retira aquela posição dos candidatos de inferência.