Conversor de TypeScript a JSON
Pega interfaces de TypeScript o literales de objeto tipados. Recibe JSON válido.
Qué hace esta herramienta
Tienes una interface de TypeScript junto con un literal de objeto tipado, o una asignación const config: Config = {...}, y necesitas ese valor como JSON real — para una petición a una API, un fixture o un ejemplo de OpenAPI. Pega el bloque entero aquí. La herramienta retira las anotaciones de tipos, resuelve el literal y te devuelve JSON que parsea en cualquier sitio.
La sintaxis solo-de-tipos se maneja igual que lo haría el compilador de TypeScript al emitir: las interfaces y los alias de tipo se borran, as const y satisfies no cambian la salida, Record<string, X> se queda como un objeto, y los modificadores readonly y ? se ignoran en el JSON (los campos opcionales que falten simplemente no aparecen). Las cadenas se entrecomillan como lo hace JSON.stringify — comillas dobles, escape cuando haga falta — y las claves siempre son strings.
Los enums emiten su valor en tiempo de ejecución. Un enum numérico se convierte en número, uno de strings en string. Las instancias de Date salen en ISO-8601 según el RFC 8259. Las propiedades undefined desaparecen; null se queda como null. Pega varias interfaces con sus instancias de una vez si quieres — cada instancia aparece como una entrada de nivel superior en el JSON.
Cómo usarlo
Tres pasos. Funciona para una interface de cinco líneas o un módulo <code>types.ts</code> entero.
Pega tu TypeScript (o prueba el ejemplo)
Suéltalo en el editor de la izquierda. Una interface + objeto tipado, un alias de tipo, definiciones de enum o declaraciones const exportadas — todo vale. Pulsa Cargar ejemplo para ver cómo se ve una entrada realista.
Deja la sintaxis estilo TypeScript handbook tal cual — no hace falta quitar generics, decoradores ni import type. Consulta la referencia JSON de MDN si quieres repasar cómo mapea JS a JSON.
Pulsa Convertir
Haz clic en el botón verde Convertir. La herramienta borra la información de tipos, evalúa los literales y los serializa igual que lo haría JSON.stringify(obj, null, 2).
Copia el JSON
El panel derecho muestra JSON formateado listo para pegarlo en el body de una petición, un ejemplo de OpenAPI o un fixture de test.
Cuándo resulta útil de verdad
Ejemplos de petición a APIs
Tienes un DTO de petición en Angular, Next.js o NestJS y necesitas un payload JSON para Swagger, Postman o un curl. Pega la interface + el objeto y obtienes el JSON.
Fixtures para tests unitarios
Pasa un mock tipado inline de un test de Jest o Vitest a un fixture JSON independiente para MSW, Playwright o runs de integración.
Ejemplos de OpenAPI y JSON Schema
Pega la interface <code>User</code> y una instancia de ejemplo para generar el bloque <code>example</code> de tu esquema <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI</a> de una vez.
Pasar configuración a JSON
¿Migrando de un <code>config.ts</code> tipado a un almacén de configuración basado en JSON? Pega el const tipado, obtén JSON limpio y mételo en tu nuevo sistema de configuración.
Preguntas frecuentes
¿Quita las anotaciones de tipos y los generics?
Sí. Interfaces, alias de tipo, parámetros genéricos, casts con as, satisfies y readonly se borran igual que los borra el compilador de TypeScript. El JSON refleja solo el valor en tiempo de ejecución.
¿Cómo se tratan los enums?
Los enums numéricos emiten el número y los de strings emiten el string. const enum se trata igual que un enum normal a efectos de la conversión. Las referencias a enum dentro del literal se resuelven a sus valores declarados.
¿Y los campos opcionales y los tipos Record?
Los campos opcionales (name?: string) que no están presentes simplemente no aparecen en el JSON — igual que el comportamiento por defecto de JSON.stringify. Record<string, X> se queda como un objeto JSON indexado por las claves string que le pases.
¿Puedo pegar un archivo de tipos entero?
Sí. Puedes meter varias interfaces, alias de tipo, enums y const tipados en un mismo pegado. Cada instancia tipada de nivel superior termina como su propia entrada en el JSON, con los tipos anidados expandidos en su sitio.
¿Cómo se tratan Date, null y undefined?
Los valores Date se convierten en strings ISO-8601. null se queda como null JSON. Las propiedades undefined desaparecen de los objetos. En arrays, los elementos undefined pasan a null en ese slot — igual que hace JSON.stringify.
¿Se guarda mi código?
El código se envía al backend solo para convertirlo. No se loguea ni se guarda. Si vas a pegar algo sensible, échale un vistazo antes.
Otras herramientas que te pueden hacer falta
TypeScript a JSON es una pieza del puzle. Estas son las herramientas que casan bien con ella: