À propos de cet outil
Taper à la main des interfaces TypeScript pour coller à une réponse d’API est un travail fastidieux — et facile à rater subtilement. Collez ici un échantillon de JSON et obtenez les interfaces correspondantes instantanément. Les objets imbriqués sont extraits dans leurs propres interfaces nommées, les tableaux d’objets sont fusionnés pour que les clés absentes de certaines entrées deviennent optionnelles, et les valeurs à plusieurs types deviennent des unions.
Tout tourne dans votre navigateur grâce à un inféreur léger — votre JSON n’est jamais envoyé. Collez, ajustez le nom racine si besoin et copiez des types prêts à l’emploi dans votre projet.
Questions fréquentes
Mon JSON est-il envoyé quelque part ?
Non. L'analyse et l'inférence de types s'exécutent entièrement dans le JavaScript de votre navigateur — votre JSON ne quitte jamais votre appareil.
Comment gère-t-il un tableau où les objets ont des champs différents ?
Il fusionne les clés de tous les objets du tableau en une seule interface ; toute clé absente d'au moins un objet est marquée optionnelle avec `?` plutôt que d'être supprimée.
Que se passe-t-il avec un tableau de types mixtes, comme des nombres et des chaînes ?
Il produit un type de tableau union tel que `(string | number)[]`, afin que la forme reflète toujours chaque valeur réellement observée dans l'échantillon.
Puis-je générer des alias de type au lieu d'interfaces ?
Oui, activez 'as type' pour transformer chaque `interface Name {}` généré en `type Name = {}` — utile si votre base de code préfère les alias de type.
Que se passe-t-il si je colle un JSON invalide ?
L'outil affiche un message d'erreur avec la ligne et la colonne exactes du problème et vous permet d'y accéder directement, plutôt qu'un message générique 'JSON invalide'.
Gère-t-il les objets imbriqués et les tableaux, pas seulement du JSON plat ?
Oui. Un objet imbriqué devient sa propre interface nommée, dont le nom vient de la clé parente (ainsi `profile: {...}` produit une interface `Profile`), et les noms de tableaux sont mis au singulier (`roles` → `Role[]`). Un tableau d'objets génère une seule interface partagée par tous les éléments, avec `?` sur les champs absents de certains — pas une interface distincte par élément.