TypeScript · Intermediário · Inglês · Técnico
generic constraint
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