Skip to content
JSON para TypeScript
Tools

JSON para TypeScript

Novo

Gere interfaces TypeScript a partir de um exemplo JSON, com tipos aninhados.

Output

Runs entirely in your browser. Nothing is uploaded.

Converta JSON para TypeScript com um clique

Este conversor de JSON para TypeScript gera interfaces, tipos ou classes prontos para usar a partir de uma amostra JSON, para que você nunca precise escrever manualmente um tipo para uma resposta de API. Cole um payload à esquerda e o TypeScript limpo e corretamente indentado aparece à direita na hora — copie ou baixe como arquivo .ts.

É uma alternativa rápida, gratuita e sem cadastro: um único passo de JSON para interface TypeScript que roda completamente no seu navegador, com objetos aninhados, arrays e uniões todos inferidos automaticamente. Sem limites de tamanho de arquivo, sem cotas de uso diário e nada sai do seu dispositivo.

Interfaces, tipos ou classes — você escolhe

Use o seletor de saída para alternar entre uma interface, um alias de type, ou uma class. O modo interface é o padrão e emite export interface Root { … }; o modo type produz export type Root = { … } para bases de código que preferem aliases; e o modo class declara os campos em uma export class. O mesmo JSON alimenta os três, então você pode compará-los com seus próprios dados em segundos.

Você pode renomear o root, ativar ou desativar a palavra-chave export, e a escolha é lembrada para a próxima vez — tornando isso um gerador de tipos TypeScript flexível em vez de um conversor de formato único.

Inferência inteligente para objetos aninhados, arrays e uniões

O motor percorre seu JSON e constrói uma interface nomeada para cada objeto, nomeando interfaces aninhadas a partir de suas chaves e singularizando elementos de array — um array orders vira Order[]. Formas idênticas são desduplicadas em uma única interface, e arrays de tipos mistos colapsam em uma união como (string | number)[].

Ative a detecção de enums e valores de string repetidos são inferidos como uma união literal — uma coluna de status com "enviado" e "pendente" vira "pendente" | "enviado" em vez de um string genérico. Essa precisão faz a saída parecer escrita à mão.

Campos opcionais, nulos e somente leitura do jeito certo

Dados reais de API são bagunçados, então o conversor lida com eles honestamente. Quando você converte uma resposta de API para TypeScript, chaves que aparecem apenas em alguns itens de um array são marcadas como opcionais com ?, e você decide como os nulos são tipados: mantenha-os como uma união explícita | null, ou ative null → opcional para converter zip: string | null em zip?: string.

Um seletor de readonly prefixa cada propriedade com o modificador readonly para modelos imutáveis. Juntas, essas opções permitem que você se adapte à rigorosidade do seu projeto em vez de lutar contra os tipos TypeScript gerados do JSON.

Como se compara com quicktype, json2ts e MakeTypes

quicktype.io é a opção mais completa para geração multi-linguagem — suporta Python, Go, C#, Kotlin e muitas outras linguagens além de TypeScript. Essa amplitude significa que sua saída TypeScript às vezes inclui helpers de runtime e código extra. Também processa seu JSON nos servidores deles, o que importa para payloads confidenciais. json2ts.com é mais simples e gera interfaces básicas, mas não tem detecção de enums, suporte a readonly e opções de tratamento de nulos.

MakeTypes gera classes TypeScript com parsing em runtime, útil se você quer validação integrada, mas adiciona overhead de código significativo. Este conversor da UtiloKit gera tipos puros com zero footprint em runtime — apenas as interfaces ou aliases de tipo que seu código precisa, funcionando completamente no seu navegador sem upload para servidor e sem conta.

Privado por design — seu JSON nunca sai do navegador

Cada conversão acontece localmente usando JavaScript na sua aba. Seu JSON nunca é enviado para um servidor, armazenado ou compartilhado — funciona offline e é seguro para payloads confidenciais, APIs internas e dados de produção. Salve nos favoritos este conversor de JSON para TypeScript e use sempre que precisar de tipos rapidamente.

O parser tolerante aceita até entrada JSON-ish com // comentários, vírgulas finais e strings com aspas simples, então você pode colar um objeto literal JavaScript do seu editor e ainda obter uma saída válida. Nenhum passo adicional necessário.

Frequently asked questions

Como converto JSON para TypeScript?

Cole seu JSON no painel de entrada (ou clique em Exemplo para carregar uma amostra) e o TypeScript correspondente aparece instantaneamente no painel de saída. Por exemplo, {"id": 1, "nome": "Ana"} vira export interface Root { id: number; nome: string; }. Clique em Copiar ou Baixar .ts para adicionar os tipos direto no seu projeto.

Como gero uma interface TypeScript a partir de JSON?

Deixe a saída configurada em Interface (padrão) e cada objeto JSON vira seu próprio export interface. Configure o campo Nome raiz para controlar o nome do nível superior. Por exemplo { "id": 1, "nome": "Ana" } com um nome raiz de Usuario produz export interface Usuario { id: number; nome: string; }. Objetos aninhados viram automaticamente suas próprias interfaces nomeadas.

Qual é a diferença entre interface e alias de tipo?

Ambos descrevem o mesmo formato de objeto — escolha o que sua base de código preferir usando o seletor Interface / Type / Class. O modo Interface emite export interface Root { … }, que pode ser reaberto e estendido com declaration merging; o modo Type emite export type Root = { … }, que também pode expressar uniões e primitivos; o modo Class emite export class Root { … } com campos declarados.

Como lido com campos opcionais ou nulos (? / | null)?

Dois seletores controlam isso. 'Opcional (?) para chaves ausentes' marca como opcional qualquer propriedade que não aparece em todos os itens de um array de objetos. 'null → opcional' reescreve um campo nullable como zip: string | null em zip?: string; desative para manter a união explícita | null. Combine os dois para se adaptar ao estilo de tratamento de nulos da sua equipe.

É seguro colar JSON aqui?

Sim. A conversão é 100% client-side: seu JSON é analisado e convertido para TypeScript por JavaScript rodando na sua própria aba do navegador, e nunca é enviado, logado ou mandado para qualquer servidor. Você pode desconectar da internet e a ferramenta continua funcionando.

Como funciona a detecção de enums de string?

Ative 'Detectar enums de string' e uma coluna de strings repetidas como 'enviado' e 'pendente' é inferida como uma união literal "pendente" | "enviado" em vez de um simples string. Isso torna os tipos gerados muito mais precisos e úteis do que os que conversores simples produzem.

Posso gerar tipos a partir de uma resposta de API ou Swagger?

Sim — cole uma resposta JSON real da sua API e a ferramenta infere interfaces prontas para usar que você pode conectar direto nas suas chamadas fetch ou axios para autocompletar e type safety. Para um endpoint Swagger/OpenAPI, copie um corpo de resposta de exemplo (o JSON, não o documento de schema) e converta.