Comment fonctionne l’inférence de types
Le générateur analyse votre JSON et infère un type TypeScript pour chaque valeur : les chaînes deviennent string, les nombres number, les booléens boolean, et null devient null. Les tableaux sont typés T[] où T est le type d’élément inféré. Quand un tableau contient des éléments de types différents, le type d’élément devient une union comme string | number.
Les objets imbriqués deviennent leurs propres interfaces nommées. L’objet racine s’appelle "Root" par défaut (personnalisable), et chaque objet imbriqué reçoit un nom en PascalCase dérivé de sa clé — par exemple une clé "userProfile" génère une interface "UserProfile". Cela rend la sortie modulaire et lisible.
Les propriétés présentes dans certains éléments de tableau mais absentes dans d’autres sont automatiquement marquées optionnelles avec le modificateur ?. Cela modélise correctement les réponses d’API réelles où les champs peuvent apparaître ou non selon l’état de l’enregistrement.
Options de sortie et style
Vous pouvez choisir entre la sortie interface et alias de type. Les interfaces sont le choix idiomatique pour décrire des formes d’objets et supportent la fusion de déclarations ; les alias de type sont préférés quand vous avez besoin de types union au niveau supérieur. Le générateur émet des interfaces par défaut mais peut basculer vers des alias de type d’un clic.
Des modificateurs readonly peuvent être ajoutés à toutes les propriétés pour produire des types immuables — utiles pour l’état Redux, les objets de configuration et les modèles de réponse API qui ne doivent pas être mutés après création. La préférence points-virgules/virgules pour les délimiteurs de propriétés est aussi configurable.
Le mot-clé export est préfixé à chaque interface par défaut pour que le fichier généré soit immédiatement importable. L’encapsulation dans un namespace est disponible pour regrouper tous les types générés sous un seul identifiant de module, ce qui est courant dans les grandes bases de code.
Flux de travail de développement pratiques
Le flux de travail le plus courant est le typage d’une réponse d’API externe. Récupérez une réponse exemple, collez le JSON et utilisez les interfaces générées comme argument de type pour les appels fetch, les requêtes Axios ou les hooks React Query. Cela élimine des catégories entières d’erreurs de type à l’exécution.
Lors du prototypage d’une nouvelle fonctionnalité, vous avez souvent un fichier de données exemple avant d’avoir des définitions de types formelles. Le générateur amorce vos types depuis les données pour que vous puissiez immédiatement écrire du code type-safe et affiner les types à mesure que le schéma se stabilise.
Les équipes qui migrent des bases de code JavaScript vers TypeScript utilisent le générateur pour produire en lot des fichiers d’interface pour les modèles de données existants. Même les types générés imparfaits servent de point de départ bien plus rapide qu’écrire chaque interface manuellement.