🧩
TypeScriptAvançado 9 min

Generics em TypeScript

Funções e tipos que funcionam com qualquer tipo, mantidos com segurança de tipo.

Generics permitem escrever código que funciona com qualquer tipo, sem perder a informação de tipo. Pense neles como variáveis para tipos.

Função genérica

primeiro.ts
// T é o parâmetro de tipo
function primeiro<T>(lista: T[]): T {
  return lista[0];
}

const n = primeiro([1, 2, 3]);       // number
const s = primeiro(["a", "b"]);      // string

Restringindo com constraints

typescript
interface TemId { id: number }

// só aceita tipos que tenham id
function buscar<T extends TemId>(itens: T[], id: number): T | undefined {
  return itens.find(i => i.id === id);
}

Use generics quando o tipo de saída depende do tipo de entrada. Se uma função sempre retorna o mesmo tipo, não precisa ser genérica.