Saltar para o conteúdo principal
LibraTool logoLibraTool

Conversor JSON para TypeScript grátis

Gere interfaces TypeScript ou aliases de tipo a partir de qualquer objeto ou array JSON. Cole seu JSON e obtenha tipos TypeScript prontos para uso instantaneamente.

Funciona offline depois de carregado
export interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
  score: number;
  tags: string[];
  address?: null;
}

export interface Root {
  user: User;
  createdAt: string;
  version: number;
}

Usos comuns

  • Gerar Tipos TypeScript de Respostas de APICole uma resposta JSON de API e gere instantaneamente interfaces TypeScript para tornar seu código de front-end type-safe.
  • Tipos TypeScript para Objetos de Configuração e ConfiguraçõesGere interfaces TypeScript de arquivos de configuração JSON para adicionar segurança de tipo às configurações do aplicativo.
  • Gerar Tipos TypeScript de Registros de Banco de DadosConverta registros de banco de dados exportados em JSON ou resultados de consulta ORM em interfaces TypeScript para digitação de camada de dados.
  • Dados Mock do Tipo e Adereços de TesteGere interfaces TypeScript de dados mock JSON e adereços de teste para digitar seus testes unitários e histórias do Storybook.
  • Respostas de API de Terceiros do TipoGere interfaces TypeScript de respostas de API de terceiros onde tipos oficiais estão ausentes ou desatualizados.

Como funciona

Esta ferramenta usa um algoritmo de inferência de tipo recursivo escrito à mão sem bibliotecas externas — JSON.parse para validar e analisar a entrada, depois uma travessia personalizada que percorre cada valor na árvore JSON e emite declarações de interface ou tipo TypeScript diretamente no navegador. Nada é enviado a um servidor.

  1. 1
    JSON analisado e validado
    A sua entrada é passada a JSON.parse. Se falhar, o erro exato de análise é mostrado imediatamente abaixo da entrada. Uma análise bem-sucedida produz uma árvore de valores tipada que conduz o resto da conversão.
  2. 2
    Inferência de tipo recursiva
    Uma função recursiva getType percorre cada nó: primitivos mapeiam para string, number, boolean, ou null; objetos ativam uma nova interface nomeada; arrays de objetos têm as suas chaves fundidas em todos os elementos para que chaves presentes apenas em alguns itens se tornem opcionais e tipos de valor conflituantes sejam unidos com |.
  3. 3
    Nomeação de interface segura contra colisões
    Cada objeto aninhado recebe um nome PascalCase derivado da sua chave JSON (snake_case, kebab-case, e espaços são todos normalizados). Se dois objetos estruturalmente diferentes compartilhassem o mesmo nome, é adicionado um sufixo numérico (Data, Data2, …) em vez de sobrescrever silenciosamente a definição anterior.
  4. 4
    Saída renderizada e transferível
    As interfaces aninhadas são emitidas primeiro, depois o tipo raiz, formatado como export interface ou export type dependendo da sua seleção. O resultado pode ser copiado para a área de transferência ou baixado como um arquivo .ts — tudo construído com um Blob padrão e sem ida e volta ao servidor.

Ferramentas relacionadas

Perguntas frequentes