JSON para Interface TypeScript

Cole um JSON de exemplo e gere interfaces TypeScript inferidas: objetos aninhados viram interfaces próprias, arrays viram T[] e itens heterogêneos viram union. O nome da interface raiz é configurável.

Como a inferência funciona

A ferramenta faz o JSON.parse do texto e percorre a estrutura inferindo os tipos básicos (string, number, boolean, null). Cada objeto aninhado vira uma interface separada, nomeada a partir da chave (em PascalCase). Objetos com a mesma forma são reaproveitados em uma única interface. Arrays viram T[]; quando os itens têm tipos diferentes, o elemento vira uma união, por exemplo (number | string)[].

Escopo e limitações

O objetivo é ser simples e previsível: tipos básicos, objetos aninhados e arrays. Campos opcionais não são inferidos (todos saem como obrigatórios), e um array vazio vira unknown[], já que não há item para inspecionar. Chaves que não são identificadores válidos (com hífen, por exemplo) saem entre aspas, como o TypeScript exige.

Perguntas frequentes (FAQ)

O que acontece se o JSON for inválido?

A ferramenta mostra uma mensagem de erro legível (a mesma do JSON.parse) e não gera saída, sem quebrar a página. Corrija o JSON e a geração acontece ao vivo enquanto você digita.

Por que dois campos diferentes usam a mesma interface?

Quando dois objetos têm exatamente as mesmas chaves e tipos, eles compartilham uma única interface — reduz a duplicação. Se você precisa de nomes distintos, renomeie no código gerado.