1001Ferramentas
🅃 Conversores

JSON para TypeScript

Converta um JSON em interfaces TypeScript com tipos inferidos automaticamente. Detecta strings, números, booleanos, arrays, objetos aninhados e união de tipos. Tudo no navegador.

Como funciona?

O conversor lê seu JSON e infere o tipo TypeScript correspondente para cada campo: string, number, boolean, null, arrays e objetos aninhados (cada um vira uma interface separada). Quando um array tem itens de tipos diferentes, é gerada uma união ((string | number)[]).

Útil para gerar tipos a partir de respostas de APIs reais, payloads de webhooks ou estruturas de dados que você acabou de receber. Tudo roda no seu navegador — nada é enviado a servidores.

Gere interfaces TypeScript a partir de JSON

Tipar a resposta de uma API no TypeScript faz diferença. O problema é escrever as interfaces na mão a partir de um JSON grande: é um trabalho chato e cheio de espaço pra escorregar. Aqui você cola o JSON e as interfaces correspondentes saem prontas, já com os tipos inferidos.

A ferramenta entende strings, números, booleanos, arrays e objetos aninhados, e quando os valores variam ela ainda monta uniões de tipos, devolvendo uma estrutura fiel ao formato dos dados. Em poucos segundos o código está pronto pra colar no projeto, o que poupa o serviço manual e corta erros de digitação.

O JSON não sai do seu dispositivo: a conversão é toda feita dentro do navegador. Cole os dados, copie as interfaces e seu código sai com tipagem forte.

Perguntas frequentes

Por que um array de objetos gerou Post e Post2 idênticos?
Porque cada item do array é analisado por conta própria. O conversor não compara as formas para perceber que são iguais, então dois objetos dentro de posts viram duas interfaces, Post e Post2, e o campo sai como posts: (Post | Post2)[]. Quando as duas são mesmo iguais, apague a segunda e troque a união por Post[]. Quando são diferentes, o que você tem em mãos é justamente o mapa dos campos que variam de um item para o outro, e costuma valer a leitura antes de apagar.
Um campo veio tipado como null. Como conserto isso?
É o limite de inferir tipo a partir de um exemplo só. Se no JSON colado o campo está em null, não há como saber o que ele guarda quando está preenchido, e a saída é literalmente deletedAt: null. Troque à mão pela união real, string | null por exemplo. Pela mesma razão, array vazio vira unknown[], data em texto sai como string e nenhum campo ganha a marca de opcional: se a chave faltar no exemplo, ela some da interface em vez de virar um campo com interrogação.
O que o campo do nome da interface raiz faz quando o JSON começa com colchete?
Ele batiza duas coisas de uma vez. Com um array na raiz, o nome que você digitar vira o tipo da lista e a forma no singular batiza a interface do item: escrever Users produz interface User junto de type Users = User[]. O nome passa por PascalCase antes, então minha resposta vira MinhaResposta. Se o JSON for um valor solto, como 42 ou uma string, a saída também é um type e não uma interface. A caixa de seleção ao lado tira o export de todos os blocos de uma vez.

Ferramentas Relacionadas