ExpertiDict

TypeScript · Avançado · Inglês · Técnico

NoInfer

/noʊ ɪnˈfɝ/substantivo

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'); // erro

Exemplos

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.

Veja também

Todos os termos de TypeScript