JSON para TypeScript: pare de escrever interfaces manualmente

2024-08-04

Interfaces escritas a mao se desalinhham das respostas reais de API. Gerar tipos TypeScript a partir de amostras JSON e padrao, desde que voce entenda regras e limites.

Por que gerar tipos?

Pegue erros de digitacao e acesso null em tempo de compilacao; use payload real quando OpenAPI estiver ausente ou desatualizado.

Exemplo de mapeamento manual

JSON
{ "id": 1, "name": "Alice", "email": null }
TypeScript
interface User {
  id: number;
  name: string;
  email: string | null;
}

Arrays aninhados e unions

Arrays vazios exigem tipo manual de elemento; arrays heterogeneos viram tipos union.

Opcional vs null

Chaves ausentes (email?) nao sao iguais a valores null (email: string | null); alinhe com a semantica do backend.

Ferramentas

quicktype CLI, json-schema-to-typescript e json2ts online para casos pontuais.

# npx quicktype sample.json -o types.ts --lang typescript

Boas praticas

Regenere em vez de editar arquivos gerados; use multiplas amostras; deixe o tsc apontar quebras de API.