JSON para TypeScript Interface

JSON para TypeScript Interface

Converta qualquer JSON em interfaces TypeScript limpas e prontas para produção. Ferramenta online gratuita — suporta objetos aninhados, arrays e campos...

Atualizado em abril de 2026

Revisado por Rafael Duarte

Root Interface Name
Output
1
TypeScript Interface

// Paste JSON on the left // to generate TypeScript interfaces

Shift + Enter para Copiar

Como usar

De JSON bruto a interface pronta para produção

1. Cole seu JSON

Uma resposta de API, config ou registro de banco — qualquer objeto ou array válido.

2. Nomeie a interface raiz

Padrão `RootObject` — renomeie para algo do seu domínio, como `User` ou `Produto`.

3. Copie o resultado

Clique em Copy ou `Shift+Enter` e cole direto nos seus arquivos `.ts`/`.tsx`.

O que esta ferramenta faz

Suporta a variedade completa de JSON do mundo real

Objetos aninhados

Cada objeto interno recebe sua própria interface nomeada, ordenada por dependência.

Arrays tipados

Primitivos viram string[]/number[]; arrays de objetos geram interface + [].

Toggle interface/type

Alterne entre interface e type conforme a convenção do seu projeto.

Campos nulos

Valores null são tipados corretamente, prontos para você expandir com union types.

Correção automática de JSON quebrado

O botão Fix usa a biblioteca jsonrepair para consertar vírgula sobrando, aspas faltando e chaves não fechadas antes de gerar as interfaces.

Aceita array de objetos na raiz

Cole um array — como uma lista de usuários retornada por uma API — e a ferramenta gera a interface a partir do primeiro item, sem precisar extrair um objeto manualmente.

Como cada tipo JSON vira TypeScript

JSON
TypeScript
string
string
42
number
true
boolean
["a", "b"]
string[]
{"perfil": {...}}
perfil: Perfil (+ interface Perfil separada)

Quando você vai usar isso

Os cenários mais comuns entre quem usa a ferramenta

Tipar respostas de API REST

Cole o JSON retornado pelo backend e obtenha interfaces prontas para fetch ou axios.

Tipar arquivos de configuração

Converta config.json em interface para autocomplete das chaves no editor.

Acelerar o desenvolvimento

Elimine o boilerplate de escrever interfaces manualmente para payloads complexos.

Integrar APIs de terceiros

Cole uma resposta de exemplo para entender o formato e gerar tipos de partida.

Prototipar rápido antes de codar

Gere a estrutura tipada em segundos para já ter autocomplete no editor antes de escrever a lógica de negócio da feature.

Revisar o resultado com syntax highlighting

O painel de saída colore palavras-chave, tipos primitivos, nomes de interface e campos separadamente, facilitando revisar visualmente uma interface grande antes de colar no editor.

Erros comuns

Esperar tipos opcionais automáticos

O gerador tipa com base nos dados fornecidos — campos que podem faltar precisam de ? manual depois.

Tratar `null` como tipo final

Em produção, expanda para string | null conforme o que o campo pode realmente receber.

Arrays vazios sem contexto

Resultam em unknown[] — o tipo dos elementos não pode ser inferido sem dados de exemplo.

Nome de interface raiz com espaços ou símbolos

Diferente das interfaces aninhadas (convertidas para PascalCase automaticamente), o nome da interface raiz é usado exatamente como digitado — espaços ou caracteres inválidos geram TypeScript que não compila.

Colar um array de primitivos na raiz

A raiz precisa ser um objeto ou um array de objetos. Um array só de strings ou números não tem campos para tipar e retorna apenas um comentário de aviso, sem interface.

Esperar tupla em vez de union para arrays mistos

Um array como ["a", 1, true] não vira uma tupla posicional — o gerador cria um union (string | number | boolean)[], já que TypeScript não pode inferir posições fixas a partir de JSON solto.

Por que usar esta ferramenta

Trata estruturas aninhadas recursivamente, uma interface por nível, ordenadas para que dependências apareçam antes de serem usadas — sem precisar organizar isso manualmente.

Compatível com TypeScript 3.0+ e qualquer framework moderno — React, Next.js, Vue, Angular ou Node.js.

Roda 100% no navegador: nada do JSON colado é enviado a servidores externos, então é seguro tipar payloads reais com dados sensíveis sem se preocupar com privacidade.

`interface` vs. `type`

Ambos disponíveis via toggle na ferramenta

interface
type
Suporta `extends`
sim
via intersection (`&`)
Declaration merging
sim
não
Melhor para
APIs públicas, bibliotecas
unions e interseções complexas

Perguntas frequentes

Cole o JSON — o gerador trata objetos aninhados recursivamente, cada um recebendo sua própria interface nomeada, ordenadas para que dependências apareçam primeiro.

Referências

Ferramentas Relacionadas