JSON para TypeScript
NovoGere interfaces TypeScript a partir de uma amostra JSON, com tipos aninhados.
Runs entirely in your browser. Nothing is uploaded.
Converta JSON para TypeScript num clique
Este conversor de JSON para TypeScript gera interfaces, tipos ou classes prontos a usar a partir de uma amostra JSON, para que nunca tenha de escrever manualmente um tipo para uma resposta de API. Cole um payload à esquerda e TypeScript limpo e corretamente indentado aparece à direita instantaneamente — copie-o ou descarregue-o como ficheiro .ts.
É uma alternativa rápida, gratuita e sem registo: um único passo de JSON para interface TypeScript que corre completamente no seu browser, com objetos aninhados, arrays e uniões todos inferidos automaticamente. Sem limites de tamanho de ficheiro, sem quotas de utilização diária e nada sai nunca do seu dispositivo.
Interfaces, tipos ou classes — a sua escolha
Use o seletor de saída para alternar entre uma interface, um alias de type, ou uma class. O modo interface é o predefinido 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 numa export class. O mesmo JSON alimenta os três, por isso pode compará-los com os seus próprios dados em segundos.
Pode renomear a raiz, ativar ou desativar a palavra-chave export, e a escolha é recordada para a próxima vez — transformando isto num gerador de tipos TypeScript flexível em vez de um conversor de uma única forma.
Inferência inteligente para objetos aninhados, arrays e uniões
O motor percorre o seu JSON e constrói uma interface nomeada para cada objeto, nomeando interfaces aninhadas a partir das suas chaves e singularizando elementos de array — um array orders torna-se Order[]. Formas idênticas são deduplicadas numa única interface, e arrays de tipos mistos colapsam numa união como (string | number)[].
Ative a deteção de enums e valores de cadeia repetidos são inferidos como uma união literal — uma coluna de estado com "enviado" e "pendente" torna-se "pendente" | "enviado" em vez de um string genérico. Essa precisão faz com que a saída pareça escrita à mão.
Campos opcionais, nulos e só de leitura tratados corretamente
Os dados reais de API são imperfeitos, por isso o conversor trata-os honestamente. Quando converte uma resposta de API para TypeScript, chaves que aparecem apenas em alguns itens de um array são marcadas como opcionais com ?, e 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 readonly prefixa cada propriedade com o modificador readonly para modelos imutáveis. Juntas, estas opções permitem-lhe corresponder à rigorosidade do seu projeto em vez de lutar contra os tipos TypeScript gerados a partir de 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 a sua saída TypeScript por vezes inclui helpers de tempo de execução e código extra. Também processa o seu JSON nos seus servidores, o que importa para payloads confidenciais. json2ts.com é mais simples e gera interfaces básicas mas carece de deteção de enums, suporte readonly e opções de tratamento de nulos.
MakeTypes gera classes TypeScript com análise em tempo de execução. Este conversor da UtiloKit gera tipos puros com zero pegada em tempo de execução — apenas as interfaces ou aliases de tipo que o seu código precisa, funcionando completamente no seu browser sem upload para servidor e sem conta.
Privado por design — o seu JSON nunca sai do browser
Cada conversão acontece localmente usando JavaScript no seu separador. O seu JSON nunca é enviado para um servidor, armazenado ou partilhado — funciona offline e é seguro para payloads confidenciais, APIs internas e dados de produção. Guarde nos marcadores este conversor de JSON para TypeScript e use-o sempre que precisar de tipos rapidamente.
O analisador tolerante aceita até entrada JSON-ish com // comentários, vírgulas finais e cadeias com aspas simples, por isso pode colar um objeto literal de JavaScript do seu editor e obter uma saída válida. Não é necessário mais nenhum passo.
Frequently asked questions
Como converto JSON para TypeScript?
Cole o 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"} torna-se export interface Root { id: number; nome: string; }. Clique em Copiar ou Transferir .ts para adicionar os tipos diretamente ao seu projeto.
Como gero uma interface TypeScript a partir de JSON?
Deixe a saída configurada em Interface (predefinida) e cada objeto JSON torna-se o 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 Utilizador produz export interface Utilizador { id: number; nome: string; }. Objetos aninhados são convertidos automaticamente nas suas próprias interfaces nomeadas.
Qual é a diferença entre uma interface e um alias de tipo?
Ambos descrevem a mesma forma de objeto — escolha o que a 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 fusão de declarações; 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 trato campos opcionais ou nulos (? / | null)?
Dois seletores controlam isto. 'Opcional (?) para chaves em falta' marca como opcional qualquer propriedade ausente em alguns itens de um array de objetos. 'null → opcional' reescreve um campo nullable como zip: string | null em zip?: string; desative-o para manter a união explícita | null. Combine-os para se adaptar ao estilo de tratamento de nulos da sua equipa.
É seguro colar JSON aqui?
Sim. A conversão é 100% do lado do cliente: o seu JSON é analisado e convertido para TypeScript por JavaScript a correr no seu próprio separador do browser, e nunca é enviado, registado ou enviado para qualquer servidor. Pode desligar-se da internet e a ferramenta continua a funcionar.
Como funciona a deteção de enums de cadeia?
Ative 'Detetar enums de cadeia' e uma coluna de cadeias repetidas como 'enviado' e 'pendente' é inferida como uma união literal "pendente" | "enviado" em vez de um simples string. Isto torna os tipos gerados muito mais precisos e úteis.
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 a usar que pode ligar diretamente às suas chamadas fetch ou axios para autocompletar e segurança de tipos. Para um endpoint Swagger/OpenAPI, copie um corpo de resposta de exemplo (o JSON, não o documento de esquema) e converta-o.
Related tools
Ver todas as ferramentasConversor JSON ⇄ CSV
Converta um array JSON em CSV e CSV de volta para JSON, com aspas corretas.
Formatador de XML
Embeleze, minifique e valide XML diretamente no seu navegador.
Formatador de SQL
Embeleze e minifique consultas SQL com capitalização de palavras-chave e quebras de cláusula.
Visualizador de CSV
Veja, ordene e pesquise ficheiros CSV ou TSV como uma tabela limpa, no seu navegador.
Statistics Calculator
Calculate mean, median, mode, standard deviation, variance and more from a data set.
Matrix Calculator
Add, subtract, multiply matrices and compute determinant, inverse and transpose for 2×2–4×4 matrices.