Saltar al contenido

JSON a TypeScript

JSON a TypeScript convierte muestras JSON localmente en interfaces TypeScript y alias de tipo, con campos opcionales, inferencia union/null/Date, nombre raíz y copia/descarga de .ts.

JSON

Caracteres

0 / 50,000

TypeScript

JSON a TypeScript

Inicio rápido

1
Pega una muestra JSON válida en el editor izquierdo.
2
Si hace falta, define un tipo raíz como ApiResponse.
3
Revisa TypeScript a la derecha: objetos generan interface; arrays o primitivos, type alias.
4
Copia o descarga el .ts generado; el panel de entrada también maneja la muestra JSON.

Escenarios comunes

Convierte rápidamente respuestas reales de APIs en tipos TypeScript listos para usarse en páginas frontend, clientes SDK o pruebas de integración.

Antes de fijar el contrato definitivo, usa muestras JSON para observar cómo se infieren campos opcionales, null y tipos unión.

Convierte datos JSON de prueba en definiciones rápidas de tipo para fixtures, historias de Storybook o prototipos.

Cuando cambia la estructura de la respuesta del backend, usa el JSON más reciente para comprobar si declaraciones anidadas como User o Meta necesitan actualizarse.

Consejos de uso

Usa una muestra JSON representativa. Esta inferencia se basa en la muestra, así que los campos o valores ausentes no aparecerán en la salida.
Los arreglos vacíos se convierten en unknown[] y los objetos vacíos en interfaces que extienden Record<string, unknown> hasta que proporciones datos más ricos.
Las declaraciones anidadas se normalizan a partir de los nombres de propiedad, por eso la salida nueva prefiere nombres como User o Meta en lugar de formas antiguas con prefijo raíz.
La generación solo funciona con JSON válido. Corrige primero los errores de sintaxis; el editor muestra línea y columna cuando falla el análisis.
Los nombres raíz personalizados válidos se conservan tal cual; los nombres no válidos se normalizan a un identificador PascalCase válido de TypeScript.

Límites de inferencia de tipos

El generador infiere a partir de la muestra actual, no de JSON Schema, OpenAPI, GraphQL, archivos, URL, JSON Lines ni muestras por lotes.
Los arreglos fusionan las formas observadas de los elementos: los campos ausentes en algunos elementos se vuelven opcionales y los valores null o mixtos entran en unions.
Las cadenas con forma de fecha pueden inferirse como Date, pero el valor JSON en tiempo de ejecución sigue siendo string salvo que tu código lo analice.
Las raíces de objeto generan una interface; las raíces de arreglo y primitivas generan alias de tipo; los arreglos vacíos usan unknown[] y los objetos vacíos extienden Record<string, unknown>.
El nombre del tipo raíz por defecto es Root. Los nombres personalizados válidos se conservan, mientras que los nombres no válidos y las palabras reservadas se normalizan a PascalCase.
La salida son declaraciones estáticas TypeScript únicamente: sin validador de tiempo de ejecución, analizador, serializador, esquema Zod/Yup/io-ts o cliente API.

Limitaciones y compatibilidad

Esta herramienta infiere tipos a partir de datos de muestra, no de un schema formal ni de una fuente contractual definitiva. Los campos que no estén en la muestra no se pueden adivinar.
La entrada debe ser JSON estricto. Se rechazan comentarios, comas finales y otras sintaxis exclusivas de JavaScript.
El código TypeScript generado no incluye declaraciones export. Descargar un archivo .ts es independiente de agregar la palabra clave export que tu proyecto pueda requerir.
El resultado es únicamente código estático TypeScript. No crea validadores, analizadores, serializadores, esquemas Zod ni clientes API en tiempo de ejecución.

Privacidad y seguridad

JSON a TypeScript se ejecuta localmente en el navegador. La entrada JSON puede permanecer como borrador del navegador. Si se activa un espacio de trabajo guardado o la sincronización WebDAV, la entrada JSON, el nombre del tipo raíz, las preferencias de números de línea de entrada/salida y las preferencias de ajuste de línea pueden guardarse mediante esa sincronización. El TypeScript generado, los errores de validación, los resaltados de línea/columna, el estado de copia y el historial de deshacer se derivan de la entrada actual y no se guardan como datos de resultado separados. Las descargas del JSON de entrada y de la salida .ts se crean solo cuando haces clic en Download. Esta herramienta no sube archivos ni crea adjuntos.

Preguntas frecuentes

6

Continúa con estas herramientas relacionadas para el siguiente paso.

Todo el procesamiento de las herramientas ocurre localmente en tu navegador.