Convertir JSON a TypeScript: interfaces y objetos anidados
Pegue un JSON y obtenga interfaces TypeScript: objetos anidados, arrays, null, campos opcionales, readonly y export, todo en su navegador.
Convertir un JSON en tipos TypeScript
Para convertir un JSON en tipo TypeScript, cada valor se asocia a su tipo (string, number, boolean, null), cada objeto anidado pasa a ser una interfaz con el nombre de su clave y cada array se convierte en T[]. Un campo ausente en algunos elementos de un array de objetos se declara opcional (?).
Reglas aplicadas
- Arrays: unión de los tipos de los elementos, por ejemplo (number | string)[]; un array vacío da unknown[].
- null: se añade como unión (string | null).
- Claves: una clave que no es un identificador válido (user-name) se pone entre comillas.
- Objetos de un array: se fusionan en una sola interfaz; los campos ausentes en algunos elementos pasan a ser opcionales.
- Opciones: interface o type, export, propiedades readonly.
Ejemplo
Para [{"a":1,"b":null},{"a":"x"}] se obtiene RootItem[] con a: number | string y b?: null.
Límites
Una sola muestra no revela todos los casos: un campo siempre relleno en la muestra puede ser nulo en otros datos. Las fechas siguen siendo string y los enteros y decimales son todos number. Revise el resultado antes de integrarlo.
Fuentes y fechas: el formato JSON está definido por la RFC 8259 (diciembre de 2017, que sustituye a la RFC 7159) y por la norma ECMA-404; un texto JSON puede ser cualquier valor, no solo un objeto o un array. El código generado usa el tipo unknown, disponible desde TypeScript 3.0 (2018, de memoria, no reverificado), así como los modificadores opcional (?) y readonly (verificado el 14/10/2026)
Preguntas frecuentes
¿Cómo convertir un JSON en una interfaz TypeScript?
Pegue el JSON en la herramienta: cada objeto se convierte en una interfaz, cada array en T[] y null se añade como unión. Después copie el resultado en un archivo .ts.
¿Cómo trata TypeScript un campo presente solo en algunos objetos?
Si una clave falta en al menos un objeto de un array, se declara opcional con un signo de interrogación (coupon?: string). El campo puede entonces valer undefined.
¿Conviene usar interface o type para datos JSON?
Ambos describen bien un objeto JSON. interface se puede fusionar y ampliar con extends; type admite además uniones. Para datos de una API, interface es la opción más habitual.
¿La herramienta es realmente gratuita?
Sí, todas las herramientas en Kristools son 100% gratuitas y accesibles sin registro.
¿Están protegidos mis datos?
Sí. Todo el procesamiento se realiza de forma segura y directa en tu navegador. No se envían datos personales a nuestros servidores.