Pular para o conteúdo

TypeScript de ponta a ponta: reduzindo bugs em produção com tipagem unificada entre front, app e back

O backend muda um campo e o app quebra em produção. Tipos compartilhados entre front, app e API acabam com essa classe inteira de bugs.

Por Equipe We Codex3 min de leitura

Um dev renomeia telefone para celular na API. O site continua mandando telefone, o app também. Nenhum erro aparece até um cliente reclamar que o cadastro "não salva". Esse bug não é falta de atenção: é falta de um contrato que todos compartilham.

A ideia

Quando web, app e backend são escritos em TypeScript, os tipos dos dados que trafegam entre eles podem viver num lugar só. Mudou o contrato, o compilador aponta cada tela que precisa de ajuste — antes do deploy.

Como estruturar

ts
// packages/contratos/cliente.ts
export const ClienteSchema = z.object({ nome: z.string(), celular: z.string() })
export type Cliente = z.infer<typeof ClienteSchema>

O que você ganha

E se a API for pública?

Para parceiros que não usam TypeScript, gere documentação a partir dos mesmos esquemas e versione a API com cuidado, como em Versionamento de API: mudar sem quebrar o app de ninguém.

Cuidados

  • Compartilhe contratos, não regras de negócio do servidor — o front não precisa saber como o desconto é calculado.
  • Proíba any. Um único any no caminho apaga a garantia.

Usamos essa arquitetura nos sistemas, apps e no WOCOM Hub. Conte o seu cenário.

  • TypeScript
  • Monorepo
  • APIs
  • React Native
CompartilharWhatsAppLinkedIn

Resolver de vez, com quem faz isso todo dia

Precisa de uma API ou integração que não caia quando o negócio crescer?

Este artigo mostra o caminho. A implementação sob medida — o detalhe que muda o resultado no seu caso — é o trabalho da We Codex, empresa de engenharia do grupo Wocom.