Saltar ao contido principal
LibraTool logoLibraTool

Conversor de JSON a TypeScript de balde

Xera interfaces ou alias de tipo TypeScript a partir de calquera obxecto ou array JSON. Pega o teu JSON e obtén tipos TypeScript listos para usar al instante.

Funciona sen conexión unha vez cargado
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 habituais

  • Xera Tipos TypeScript de Respostas APIPega unha resposta JSON da API e xera instantaneamente interfaces TypeScript para escribir de forma segura o código do front-end.
  • Tipos TypeScript para Ficheiros de Configuración e Obxectos de ConfiguraciónXera interfaces TypeScript a partir de ficheiros de configuración JSON para engadir seguridade de tipos á configuración da aplicación.
  • Xera Tipos TypeScript de Rexistros de Base de DatosConverte rexistros de base de datos exportados en JSON ou resultados de consulta ORM en interfaces TypeScript para escritura de datos.
  • Datos de Mock de Tipos e Accesorios de ProbaXera interfaces TypeScript a partir de datos de mock JSON e accesorios de proba para escribir as túas probas unitarias e historias de Storybook.
  • Tipo de Respostas da API de TerceirosXera interfaces TypeScript a partir de respostas da API de terceiros onde os tipos oficiais faltan ou están desactualizados.

Como funciona

Esta ferramenta usa un algoritmo de inferencia de tipos recursivo escrito a man sen bibliotecas externas — JSON.parse para validar e analizar a entrada, e despois un percorrido personalizado que percorre cada valor na árbore JSON e emite declaracións de interface ou tipo de TypeScript directamente no navegador. Nada se envía a un servidor.

  1. 1
    JSON analizado e validado
    A túa entrada pásase a JSON.parse. Se falla, o erro exacto de análise móstrase inmediatamente debaixo da entrada. Unha análise exitosa produce unha árbore de valores tipada que dirixe o resto da conversión.
  2. 2
    Inferencia de tipos recursiva
    Unha función recursiva getType percorre cada nó: os primitivos mapéanse a string, number, boolean ou null; os obxectos activan unha nova interface con nome; os arrays de obxectos teñen as súas claves fusionadas en todos os elementos así que as claves presentes só nalgúns elementos vólvense opcionais e os tipos de valor en conflito únense con |.
  3. 3
    Nomeación de interface segura fronte a colisións
    Cada obxecto aniñado obtén un nome en PascalCase derivado da súa clave JSON (snake_case, kebab-case e espazos normalízanse todos). Se dous obxectos estruturalmente diferentes compartisen o mesmo nome, engádese un sufixo numérico (Data, Data2, …) en lugar de sobrescribir silenciosamente a definición anterior.
  4. 4
    Saída renderizada e descargable
    As interfaces aniñadas emítense primeiro, e despois o tipo raíz, formatado como export interface ou export type segundo a túa selección. O resultado pódese copiar ao portapapeis ou descargar como ficheiro .ts — todo construído cun Blob estándar e sen viaxe de ida e volta ao servidor.

Ferramentas relacionadas

Preguntas frecuentes