O que é JSON para TypeScript?
O JSON to TypeScript converte dados JSON em interfaces e definições de tipo TypeScript. Ele identifica strings, números, booleanos, arrays e objetos aninhados, e marca campos anuláveis como opcionais com tipos de união. Pule a parte chata de escrever tipos de respostas de API na mão.
Quando um array tem objetos com formatos um pouco diferentes, o gerador funde tudo: as chaves ausentes em alguns registros viram opcionais com '?'. Cada objeto aninhado ganha sua própria interface nomeada (User, UserAddress, UserAddressGeo). Arrays mistos produzem tipos união como (string | number)[]. Strings no formato ISO 8601 recebem uma anotação JSDoc, e campos de texto com um pequeno conjunto fixo de valores são inferidos como união de literais em vez de string genérico. Além da saída TypeScript, o mesmo input gera mais três abas: um esquema Zod equivalente, dados de teste preenchidos com valores de exemplo realistas, e um Esquema JSON draft-07. Alterne entre interface e alias de tipo, ative a palavra export, ordene as chaves de A→Z e ligue o camelCase para converter chaves snake_case ou kebab-case em nomes idiomáticos de TypeScript.
Como usar
- Passo 1 — Cole um objeto ou array JSON, arraste um arquivo .json para a caixa de entrada, ou puxe JSON ao vivo de uma URL. A ferramenta analisa a estrutura e infere tipos TypeScript para cada campo.
- Passo 2 — Personalize a saída: defina o nome da interface raiz, escolha entre interfaces e aliases de tipo, e ative propriedades opcionais para campos que podem ser nulos.
- Passo 3 — Copie a saída ou baixe o arquivo. Quatro abas compartilham os mesmos ajustes: tipos TypeScript, um esquema Zod equivalente para validação em tempo de execução, dados de teste prontos para testes e Storybook, e um Esquema JSON draft-07 para OpenAPI ou bibliotecas de formulário. Todos os objetos aninhados recebem automaticamente suas próprias interfaces nomeadas.
Quando usar
- Tipar uma resposta de API sem spec OpenAPI/Swagger pronto.
- Gerar tipos rápidos para um arquivo JSON de configuração (tsconfig.json, package.json) que você lê num script.
- Montar em segundos uma camada tipada sobre a resposta de um SDK de terceiros.
Resultado
Sua API retorna um objeto de usuário com endereço e preferências aninhados. Cole a resposta JSON, defina o nome raiz como 'User' e obtenha interfaces limpas: User, UserAddress, UserPreferences — com tipos corretos como 'string | null' para campos opcionais.
Perguntas frequentes
- Como o gerador decide quais campos são opcionais?
- Se a entrada é um único objeto, com 'Marcar nullable como opcional' ligado, os campos com valor null entram como opcionais. Em arrays de objetos, o gerador faz a união das chaves: o que faltar em pelo menos um registro vira opcional.
- E em arrays onde os itens têm formatos diferentes?
- Mesma lógica: as chaves presentes em todo item ficam obrigatórias, as que aparecem só em alguns viram opcionais, e valores com tipos primitivos misturados geram união como string | number. O resultado é uma interface que descreve o array inteiro.
- Devo escolher interface ou type alias?
- Interfaces são mais fáceis de estender com declaration merging, opção habitual para formatos de API. Type aliases funcionam melhor quando você quer combinar com uniões, interseções ou tipos mapeados depois. Em tempo de execução dão no mesmo: vá pelo que seu projeto usa.
- Por que algumas chaves saem entre aspas no resultado?
- Quando a chave tem caracteres inválidos como identificador TypeScript (hífen, espaço, começa com dígito, ponto), o gerador envolve em aspas. O tipo continua válido e no código você acessa via obj["weird-key"].
- Os tipos gerados pegam mudanças se o formato da API mudar?
- Pegam, se você regerar. Os tipos são um snapshot do JSON colado e não se atualizam sozinhos. Um fluxo comum é regerar quando a versão da API sobe e ver o diff na revisão de código.
Ferramentas relacionadas
Buscador de Rimas
Encontre rimas perfeitas e aproximadas para qualquer palavra
Solucionador de Anagramas
Encontre todos os anagramas válidos de qualquer palavra
Pesquisa de Unicode
Busque caracteres Unicode por nome ou código
Codificador/Decodificador de URL
Codifique e decodifique URLs instantaneamente
Alfabeto fonético NATO
Converta texto para o alfabeto fonético da NATO
Contador de parágrafos
Conte os parágrafos do seu texto