JSON vers TypeScript
Transformez un objet JSON en interfaces TypeScript typées.
- Instantané
- Gratuit
- Privé (traité localement)
- Sans inscription
Typer une réponse d’API en quelques secondes
Plutôt que d’écrire à la main les interfaces correspondant à un gros JSON, collez-le ici. L’outil déduit les types récursivement : objets imbriqués transformés en interfaces séparées, tableaux typés, champs optionnels marqués d’un « ? ».
-
Collez le JSON
Une réponse d’API, un fichier de config, n’importe quel objet.
-
Nommez la racine
« Root » par défaut, ou le nom de votre choix.
-
Copiez les interfaces
Prêtes à coller dans votre fichier .ts.
Exemple d’inférence
| Valeur JSON | Type déduit |
|---|---|
| "name": "Ada" | name: string |
| "age": 36 | age: number |
| "roles": ["admin"] | roles: string[] |
| "profile": { … } | profile: Profile |
| (clé absente d’un objet d’un tableau) | champ?: type |
Inférence à partir d’un exemple : pensez à raffiner les null (souvent en union string | null) et à vérifier les types après coup. Tout se passe localement, votre JSON ne quitte pas le navigateur.
Questions fréquentes
Comment les types sont-ils déduits ?
L’outil examine chaque valeur : un nombre devient number, une chaîne string, un booléen boolean. Les objets deviennent des interfaces nommées d’après leur clé, et les tableaux sont typés selon leurs éléments (string[], MonType[]…).
Comment les champs optionnels sont-ils détectés ?
Quand un tableau contient plusieurs objets, l’outil fusionne leurs clés. Une clé présente dans certains objets mais pas tous est marquée optionnelle avec « ? ». C’est exactement le comportement attendu pour des données d’API hétérogènes.
Que se passe-t-il avec les valeurs null ou les tableaux vides ?
Une valeur null est typée null (à raffiner manuellement, souvent en union comme string | null). Un tableau vide devient unknown[], car son type d’élément est indéterminable à partir d’un seul exemple.
Le résultat est-il prêt à coller dans mon code ?
Oui : l’interface racine est nommée selon votre choix (« Root » par défaut), les sous-interfaces sont déclarées au-dessus, et la syntaxe est valide TypeScript. Renommez les interfaces selon votre domaine pour plus de clarté.