ExpertiDict

TypeScript · Intermediário · Inglês · Técnico

generic constraint

/dʒəˈnɛɹɪk kənˈstɹeɪnt/substantivo

Restrição escrita com extends em um parâmetro de tipo, que limita os tipos aceitos e libera o acesso aos membros desse limite dentro da função ou classe genérica.

Onde usar

Aparece quando uma função genérica precisa ler uma propriedade, como id ou length, de T. Sem o extends, o compilador reclama que a propriedade não existe em T.

Em código

function achar<T extends { id: string }>(
  xs: T[], id: string
): T | undefined {
  return xs.find((x) => x.id === id);
}

Exemplos

Add a constraint so T is guaranteed to have an id.

Adicione uma constraint para garantir que T tenha um id.

The constraint is too loose, it accepts anything with a length.

A constraint está frouxa demais, aceita qualquer coisa com length.

Cuidado

Aqui extends significa 'é atribuível a', não herança de classe: T extends string aceita também literais como 'a' | 'b'.

Sinônimos

restrição genérica, bound

Veja também

Todos os termos de TypeScript