JSON vers TypeScript
Déduisez localement des interfaces TypeScript à partir d'un exemple JSON. Ce générateur gratuit gère objets imbriqués, tableaux et unions sans envoyer vos données.
🔒 S'exécute entièrement dans votre navigateur — rien n'est téléchargéCe que fait JSON vers TypeScript
JSON vers TypeScript lit un exemple JSON et en déduit des interfaces TypeScript fortement typées décrivant sa structure. L'outil parcourt la valeur de façon récursive : les objets deviennent des interfaces nommées, les valeurs primitives deviennent les types correspondants string, number, boolean ou null, et les tableaux deviennent des types d'élément entourés de crochets. Lorsqu'un tableau contient des éléments de types différents, le générateur les fusionne en une union afin que le résultat reste compatible avec les données d'origine. C'est utile pour consommer une API sans types publiés, pour ajouter de la sûreté de typage à une charge utile héritée ou pour transformer un jeu de données rapide en modèle réutilisable.
Les tableaux d'objets sont traités avec soin. Plutôt que de ne typer que le premier élément, l'outil fusionne tous les objets du tableau en une seule interface, en rassemblant l'union des clés. Les clés absentes de certains éléments sont marquées comme facultatives par un point d'interrogation final, ce qui reflète la manière dont les réponses réelles n'incluent des champs que lorsqu'ils sont renseignés. Les objets imbriqués sont promus en interfaces nommées à partir du nom de la propriété, de sorte que le résultat ressemble à des modèles écrits à la main plutôt qu'à un seul type profondément imbriqué.
Un flux de travail privé dans le navigateur
Toute l'analyse et l'inférence se déroulent dans votre navigateur grâce à du JavaScript côté client. L'outil n'envoie à aucun serveur votre JSON, vos réponses d'API, vos identifiants, vos jetons ou vos exemples proches de données clients, et n'exige aucun compte. Ce modèle purement local est important, car les données collées dans un générateur de types sont souvent une vraie réponse de production capturée lors du débogage. Garder le travail sur votre machine réduit les risques et rend le résultat instantané, puisqu'il n'y a aucun aller-retour réseau entre le collage et la sortie.
L'interface rassemble l'entrée JSON, le nom racine et les interfaces générées afin que vous puissiez vérifier l'inférence avant de la copier. Les résultats doivent toutefois être relus avant d'être intégrés : un seul exemple ne peut pas révéler tous les champs facultatifs, valeurs nullables ou énumérations que l'API réelle peut renvoyer. Élargissez donc les types lorsque votre connaissance du domaine indique qu'un champ peut être absent ou prendre plus de formes que l'exemple n'en montre.
Conseils pratiques
Fournissez l'exemple le plus complet dont vous disposez, idéalement avec des champs facultatifs renseignés et un tableau de plus d'un élément, afin que la logique de fusion puisse détecter unions et champs facultatifs. Renommez l'interface racine pour qu'elle corresponde à votre modèle de domaine avant de générer. Après la copie, envisagez de resserrer les types inférés trop largement : remplacez les champs string génériques par des unions de littéraux pour les énumérations connues, marquez les identifiants comme types « brandés » si votre code les utilise, et vérifiez que tout champ typé null par l'inférence ne doit pas plutôt être une union nullable. L'inférence dans le navigateur est excellente pour un premier brouillon rapide, mais les types finaux doivent refléter le contrat dont votre application dépend réellement.
Comment utiliser
- Collez le JSONAjoutez un exemple représentatif d'objet ou de tableau JSON.
- Nommez la racineChoisissez un nom d'interface racine, puis générez les interfaces.
- Copiez les interfacesVérifiez le TypeScript inféré, puis copiez-le ou téléchargez-le.