🧩

JSON vers interface TypeScript

Collez un JSON pour générer automatiquement une interface TypeScript, avec objets imbriqués et tableaux

Remarque : les types sont déduits de ce JSON, il ne s'agit pas d'un JSON Schema. Lorsque les éléments d'un tableau ont des structures différentes, un type union est généré ; les noms de champs qui ne sont pas des identifiants valides sont mis entre guillemets.

Instructions

Guide d'utilisation de JSON vers interface TypeScript\n\n## Présentation\nFace au JSON renvoyé par une API, écrire les types TypeScript à la main prend du temps. Cet outil lit directement la structure JSON et déduit récursivement les interfaces imbriquées.\n\n## Utilisation\n1. Collez le JSON dans le champ de saisie ; cliquez sur « Insérer un exemple » pour voir un cas complexe\n2. Renseignez le nom de l'interface racine (Root par défaut) et choisissez `interface` ou un alias `type`\n3. Si des champs peuvent être absents, cochez « Champs optionnels » pour ajouter `?` à chaque champ\n4. Cliquez sur « Générer le TypeScript » : le résultat suit l'ordre des références, sous-types d'abord, type racine ensuite\n5. Cliquez sur « Copier le résultat » pour le récupérer\n\n## Remarques\n- Les types sont déduits de ce seul JSON : un champ à `null` ne donne que `null`, et un champ absent passe inaperçu. Pour plus de précision, utilisez plusieurs échantillons ou complétez à la main\n- Si les éléments d'un tableau ont des structures différentes, un type union est généré, par exemple `(A | B)[]`\n- Un tableau vide ne permet de déduire que `unknown[]`, à compléter vous-même\n- Les noms de champs qui ne sont pas des identifiants valides sont entourés de guillemets, conformément à la syntaxe TypeScript

FAQ

Que faire si les objets d'un tableau ont des types différents ?

L'outil génère une interface pour chaque structure distincte et écrit le type des éléments du tableau sous forme d'union, par exemple `(User | Admin)[]`, que vous pouvez affiner ensuite selon votre métier.

Pourquoi un champ null a-t-il le type null ?

Avec cette seule donnée, impossible de savoir s'il deviendra une chaîne ou un nombre. Complétez avec tous les types rencontrés dans les données réelles, ou remplacez manuellement par `string | null`.

L'outil génère-t-il des types Go ou Java ?

Seul TypeScript est généré pour l'instant. Pour visualiser la structure, les noms d'interfaces imbriquées déduits ici se transposent facilement en structures d'un autre langage.