Ir para o conteúdo

JSON para TypeScript

JSON para TypeScript converte amostras JSON em interfaces TypeScript e aliases de tipo localmente, com campos opcionais, inferência union/null/Date, nome raiz e cópia/download de .ts.

JSON

Caracteres

0 / 50,000

TypeScript

JSON para TypeScript

Início rápido

1
Cole uma amostra JSON válida no editor esquerdo.
2
Se necessário, defina um tipo raiz como ApiResponse.
3
Revise TypeScript à direita: objetos viram interface; arrays ou primitivos viram type alias.
4
Copie ou baixe o .ts gerado; o painel de entrada também lida com a amostra JSON.

Cenários comuns

Transforme rapidamente respostas reais de API em tipos TypeScript prontos para frontend, SDKs ou integração.

Antes de fechar o contrato, observe com uma amostra JSON como campos opcionais, null e unions são inferidos.

Converta dados JSON de mock em definições rápidas de tipo para fixtures, histórias do Storybook ou protótipos.

Quando a resposta do backend muda, use uma nova amostra JSON para verificar se tipos aninhados como User ou Meta também precisam ser atualizados.

Dicas de uso

Use uma amostra representativa JSON. Esta é uma inferência baseada em amostra, portanto, campos ou valores ausentes não podem aparecer na saída.
Arrays vazios viram unknown[] e objetos vazios viram interfaces que estendem Record<string, unknown> até você fornecer dados de exemplo mais ricos.
Declarações aninhadas são normalizadas a partir de nomes de propriedades, por isso a saída mais nova prefere nomes como User ou Meta em vez das formas antigas com prefixo da raiz.
A geração só funciona com JSON válido. Corrija primeiro os erros de sintaxe; o editor mostra linha e coluna quando o parsing falha.
Nomes raiz personalizados válidos são preservados como estão; nomes inválidos são normalizados para um identificador PascalCase válido de TypeScript.

Limites de inferência de tipo

O gerador infere a partir da amostra atual, não do esquema JSON, Open API, GraphQL, arquivos, URLs, linhas JSON ou amostras em lote.
As matrizes mesclam as formas dos itens observados: os campos ausentes em alguns itens tornam-se opcionais e os valores nulos ou mistos tornam-se uniões.
Strings semelhantes a data podem ser inferidas como Date, mas o valor JSON do tempo de execução ainda é uma string, a menos que seu código o analise.
Raízes de objetos geram interface; matrizes e raízes primitivas geram aliases de tipo; matrizes vazias usam desconhecido[] e objetos vazios estendem Record<string, desconhecido>.
O nome raiz é padronizado como Root. Os nomes personalizados legais são preservados, enquanto os nomes inválidos e as palavras reservadas são normalizados paraPascalCase.
A saída contém apenas declarações TypeScript estáticas: não há validador de runtime, parser, serializer, schema Zod/Yup/io-ts nem cliente API.

Limitações e compatibilidade

Essa ferramenta infere tipos a partir de dados de amostra, não de um esquema formal ou fonte de verdade contratual. Os campos que faltam na sua amostra não podem ser adivinhados.
A entrada deve ser JSON estrito. Comentários, vírgulas finais e outras sintaxes exclusivas de JavaScript são rejeitados.
O código TypeScript gerado não inclui instruções de exportação. O download de um arquivo .ts é separado da adição da palavra-chave de exportação que seu projeto pode exigir.
O resultado é apenas código TypeScript estático. Ele não cria validadores de tempo de execução, analisadores, serializadores, esquemas Zod ou clientes API.

Privacidade e segurança

JSON para TypeScript é executado localmente no navegador. A entrada JSON pode permanecer como rascunho do navegador. Se um espaço de trabalho salvo ou a sincronização WebDAV estiver ativado, a entrada JSON, o nome do tipo raiz, as preferências de números de linha de entrada/saída e as preferências de quebra de linha poderão ser salvos por essa sincronização. O TypeScript gerado, erros de validação, realces de linha/coluna, estado de cópia e histórico de desfazer são derivados da entrada atual e não são salvos como dados de resultado separados. Downloads do JSON de entrada e da saída .ts são criados apenas quando você clica em Download. Esta ferramenta não envia arquivos nem cria anexos.

Perguntas frequentes

6

Continue com estas ferramentas relacionadas na próxima etapa.

Todo o processamento das ferramentas acontece localmente no seu navegador.