Aller au contenu
iyziTool

JSON vers TypeScript

Transformez une réponse d'API ou un fichier de configuration en interfaces TypeScript. Les objets imbriqués deviennent des interfaces nommées ; les clés absentes de certains éléments d'un tableau deviennent facultatives.

TypeScript
export interface Root { id: number; name: string; email: null; tags: string[]; address: Address; orders: Order[]; } export interface Order { id: number; total: number; note?: string; } export interface Address { city: string; zip: string; }

À propos de cet outil

Typer une réponse d'API à la main est fastidieux et source d'erreurs. Ce générateur parcourt le JSON, crée une interface pour chaque forme d'objet et la nomme d'après la clé qui la contient (au singulier pour les tableaux), déduit les types primitifs, réunit en union les éléments hétérogènes d'un tableau et marque comme facultatives les clés qui n'apparaissent pas dans tous les éléments. Les valeurs nulles deviennent une union avec null, pour ne pas oublier de les traiter.

La sortie est du TypeScript ordinaire avec des interfaces exportées, prêtes à coller dans un fichier .d.ts ou un module. Relisez le résultat : le JSON ne peut pas exprimer qu'une chaîne est en réalité une date ou une énumération, à vous d'affiner ces cas à la main.

Questions fréquentes

Pourquoi une clé est-elle marquée facultative ?
Elle figurait dans certains éléments du tableau, mais pas dans tous. C'est l'inférence la plus prudente ; retirez le ? si votre API la garantit.
Peut-il générer des alias de type plutôt que des interfaces ?
Les objets deviennent des interfaces ; la racine ne devient un alias de type que s'il s'agit d'un tableau ou d'une primitive.
Et pour un très gros JSON ?
Des milliers d'objets ne posent aucun problème. Seules les formes distinctes donnent lieu à une interface.

Outils similaires