#260 · Herramienta para desarrolladores

Conversor de JSON Schema a TypeScript

Genera declaraciones TypeScript a partir de estructuras habituales de JSON Schema: objetos, propiedades opcionales, arrays, enums, const, uniones oneOf/anyOf, intersecciones allOf y referencias locales. Los objetos inline se convierten en interfaces con nombres derivados de su ruta. El resultado funciona como punto de partida para tipar clientes, modelos o fixtures sin incorporar dependencias externas.

Datos de entrada

JSON / JSON Schema
Espacio publicitario

Cómo usar esta herramienta para desarrolladores

  1. Pega el contenido o carga un archivo compatible.
  2. Ajusta las opciones específicas del análisis cuando aparezcan.
  3. Pulsa el botón principal o usa Ctrl/Cmd + Enter.
  4. Revisa el resumen, la interpretación y los indicadores antes de copiar o descargar.

Qué hace esta herramienta para desarrolladores

required decide si una propiedad lleva “?”. Los tipos JSON se mapean a TypeScript y los objetos anidados generan interfaces auxiliares.

required decide si una propiedad lleva “?”. Los tipos JSON se mapean a TypeScript y los objetos anidados generan interfaces auxiliares.

La conversión produce tipos estáticos; no añade validación en tiempo de ejecución ni reemplaza la comprobación del JSON con su esquema.

Ejemplo

{type:"string"} se convierte en string; enum ["admin","user"] se convierte en "admin" | "user".

{
  "title": "User",
  "type": "object",
  "required": [
    "id",
    "email"
  ],
  "properties": {
    "id": {
      "type": "integer"
    },
    "email": {
      "type": "string"
    },
    "role": {
      "enum": [
        "admin",
        "user"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "profile": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      }
    }
  }
}

Casos de uso

  • Crear tipos para clientes de APIs.
  • Alinear fixtures con contratos JSON Schema.
  • Generar una base editable para SDKs internos.

Consejos para obtener resultados fiables

  • Define title o un nombre raíz estable para obtener nombres predecibles.
  • Revisa referencias y definiciones antes de compilar.
  • Mantén la validación runtime separada del tipado.
  • Ejecuta tsc sobre el resultado en tu proyecto real.

Detalles del procesamiento

Los nombres de interfaces se sanitizan para ser identificadores TypeScript y las propiedades con nombres no identificadores se escriben como literales entre comillas.

No cubre todas las palabras clave de JSON Schema ni genera validadores, branded types, restricciones numéricas, patternProperties o resolución de referencias remotas.

Preguntas frecuentes

¿Cómo convierte required a TypeScript?

Las propiedades incluidas en required se generan sin “?”; las demás se marcan como opcionales.

¿Qué ocurre con enum de JSON Schema?

Se convierte en una unión de literales TypeScript, por ejemplo "admin" | "user".

¿El código generado valida datos en tiempo de ejecución?

No. Las interfaces y tipos TypeScript solo actúan durante el análisis estático y la compilación.

¿Se soportan $ref locales?

Se convierten en nombres de tipo y se generan definiciones para $defs o definitions cuando están presentes.

¿Puedo usar el resultado directamente en un proyecto?

Normalmente sí como base, pero debes compilarlo con tu configuración de TypeScript y revisar palabras clave del esquema no cubiertas.

Módulos del resultado

MóduloContenido
SalidaResultado listo para copiar o descargar
ResumenConteo y cambios principales
DiagnósticoInterpretación específica del procesamiento

Explorar la categoría

Consulta más utilidades de formato y datos en el hub de la categoría.

Formato y datos