OpenReplay Logo
12k
12k

Convertisseur JSON vers TypeScript

Convertissez du JSON en interfaces ou types TypeScript propres — les objets imbriqués deviennent des interfaces nommées et dédupliquées, traité localement dans votre navigateur.

Sortie
Traité localement

À propos de cet outil

Un convertisseur JSON vers TypeScript lit un document JSON et en déduit un type statique : les scalaires correspondent à string, number et boolean ; les tableaux deviennent T[] ; et les objets imbriqués sont extraits dans leurs propres interfaces nommées plutôt que d'être insérés en ligne. Cet outil parcourt l'ensemble de l'arborescence des valeurs, fusionne les clés de chaque objet d'un tableau (en marquant comme optionnelles les clés absentes de certains éléments), déduplique les objets de forme identique afin qu'ils réutilisent une seule interface, et met entre guillemets tout nom de propriété qui n'est pas un identifiant valide. Les valeurs null sont mises en union avec le type de leur voisin lorsqu'une en est rencontrée, les tableaux vides deviennent unknown[], et les objets vides deviennent Record<string, unknown>.

Utilisez-le pour transformer une réponse d'API en modèles typés sans les écrire à la main, pour générer des interfaces à partir d'un fichier de fixtures ou de configuration, ou pour vérifier la forme réelle d'une charge utile avant de l'intégrer à votre code. Renommez le type racine, basculez entre une sortie interface et type pour correspondre aux conventions de votre base de code, et le résultat se régénère en direct au fur et à mesure que vous collez ou modifiez — puis copiez-le directement dans un fichier .d.ts ou de modèle.

Les types générés ne reflètent que l'échantillon que vous collez — des champs absents ou null dans votre exemple peuvent tout de même apparaître dans les données réelles, alors examinez les optionnels et les unions null avant de leur faire confiance.

Questions fréquentes

Génère-t-il des interfaces ou des alias de type TypeScript ?

Les deux. La valeur par défaut est interface, idéale pour les modèles d'objet que vous pourriez vouloir étendre ou fusionner ; basculez sur l'option type pour émettre plutôt des alias de type, qui peuvent exprimer des unions et des tuples que les interfaces ne peuvent pas exprimer.

Comment gère-t-il un tableau d'objets aux clés différentes ?

Il fusionne les clés de chaque élément dans une seule interface. Toute clé manquante dans au moins un élément est marquée comme optionnelle avec un ?, de sorte que le type généré décrit en toute sécurité tous les éléments du tableau.

Pourquoi deux objets imbriqués partagent-ils le même nom d'interface ?

Les objets dont l'ensemble des champs et des types de champs est identique sont dédupliqués en une seule interface nommée et réutilisés, ce qui maintient la sortie compacte et évite des définitions en double quasi identiques.