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
{ "id": 1, "name": "Alice", "email": null }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 typescriptBoas praticas
Regenere em vez de editar arquivos gerados; use multiplas amostras; deixe o tsc apontar quebras de API.