¿Cuál es el convertidor JSON a TypeScript?

El convertidor de JSON a TypeScript lee un valor JSON de muestra (una respuesta API, un archivo de configuración, un registro de base de datos) y escribe las interfaces TypeScript que lo describen. Los objetos anidados se convierten en sus propias interfaces con nombre, las matrices de objetos se fusionan en una interfaz de un solo elemento en lugar de una unión en expansión, y las claves que son nulas o faltan en algunos registros se marcan como opcionales. Pegas datos que ya tienes; Obtienes tipos que de otro modo escribirías a mano.
Escribir una respuesta de API a mano es tedioso y propenso a errores de una manera específica: escribes lo que *crees* que devuelve el punto final, no lo que realmente devolvió. Los campos que nunca notó se omiten, un número entero que a veces es nulo se escribe como `número`, y el error aparece en el tiempo de ejecución en la producción en lugar de en su editor. Generar tipos directamente desde una carga útil real cierra esa brecha, porque la forma contra la que compilas es la forma en que el servidor envió.
Todo se ejecuta en su navegador. El motor de inferencia es TypeScript libre de dependencias, no un contenedor alrededor de un servicio remoto, por lo que las cargas útiles, que habitualmente transportan tokens de acceso, registros de clientes e ID internos, nunca salen de la página. Elija interfaces o escriba alias, alterne la palabra clave `export` y los modificadores `readonly`, elija el ancho de su sangría, luego copie la salida o descargue un archivo .ts.
Las interfaces generadas describen la muestra que proporcionó, no la API a la que llama, y esa distinción es todo el riesgo. Se requiere un campo que está presente en cada objeto de su muestra incluso si el servidor lo omite a veces, y un campo que es nulo en la muestra no se puede distinguir de uno que siempre es nulo. Las matrices vacías son el caso más claro: una matriz sin elementos no proporciona información sobre lo que contiene. La fusión de matrices ayuda aquí al combinar cada objeto de una lista en una interfaz y marcar las claves que faltan en algunas entradas como opcionales, por lo que una muestra más grande y variada produce un tipo más honesto. Cuando la API tiene un esquema o documento OpenAPI, genere a partir de eso y utilícelo para explorar una respuesta no documentada.
¿Cómo usar el convertidor JSON a TypeScript?
Pega tu JSON
Suelte una respuesta de API, un archivo de accesorios o cualquier valor JSON. Cargue el ejemplo primero si desea ver cómo se manejan los objetos, las matrices y los campos nulos anidados.
Nombra el tipo de raíz
Establezca el nombre del tipo raíz, generalmente el recurso, como Usuario o Factura. Las interfaces anidadas se nombran automáticamente a partir de su clave, con los nombres de los elementos de la matriz singularizados (las versiones se convierten en versiones).
Elija su estilo de salida
Elija Interfaz o escriba Alias, decida si exportar cada declaración, agregar modificadores de solo lectura si su base de código prefiere formas inmutables y establezca la sangría en 2 o 4 espacios.
generar, luego copiar o descargar
presione Generar. Revise los opcionales y uniones inferidos, luego copie el código en su portapapeles o descárguelo como un archivo .ts listo para colocar en su carpeta de tipos.
Características clave
Extracción de interfaz anidada
Cada objeto anidado se convierte en su propia interfaz reutilizable con nombre en lugar de una forma anónima en línea, por lo que puede importar y hacer referencia a los tipos internos de forma independiente.
Fusión de arreglos inteligentes
Una matriz de objetos se fusiona en una interfaz de elemento. Las claves presentes en algunos registros pero no en otros se vuelven opcionales, que es exactamente como se comportan los datos de API paginados.
Manejo anulable que controlas
Elija si un valor nulo significa que la clave es opcional o si NULL pertenece a la unión. Ambas convenciones son comunes; la herramienta no obliga a uno en su base de código.
Interfaces o alias de tipo
Emita `usuario de interfaz {}` o `tipo usuario = {}` para que coincida con las reglas de lint existentes, con modificadores opcionales de `export ` y `readOnly` aplicados de manera consistente en cada declaración.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!