À propos de cet outil
Générez des déclarations de types TypeScript à partir de JSON pour examiner les champs, tableaux et structures imbriquées. Tous les éléments du tableau sont pris en compte, et les champs absents de certains objets deviennent facultatifs. La sortie contient les définitions de types, sans les valeurs d’origine.
Mode d’emploi
- Saisissez du JSON valide, de préférence un objet ou un tableau d’objets.
- Définissez le nom du type racine et choisissez interface ou type.
- Cliquez sur « Convertir » et vérifiez les ?, les unions avec null et les types imbriqués.
- Copiez le code ou téléchargez le fichier .ts nommé d’après le type racine normalisé.
Exemples
- [{"id":1,"name":"Tom"},{"id":2,"email":"a@example.com"}] : id est obligatoire ; name et email sont facultatifs.
- [1,"a",true] : conserve l’union number, string et boolean pour les éléments.
- {"date":"2026-01-01","matrix":[[1,2],[3,4]]} : date devient string et matrix devient number[][].
Correspondance des types
Chaînes → string, entiers et décimaux → number, booléens → boolean. Absence et null explicite sont distincts : un champ absent reçoit ?, un type connu également nul reçoit | null. Un échantillon uniquement null ne permet pas de déduire string. Les tableaux vides deviennent unknown[], les objets reçoivent des types imbriqués aux noms stables. Les clés non valides sont entre guillemets ; les noms de types sont normalisés et dédupliqués. Les dates restent string. Un échantillon ne garantit pas les données futures. Entrée et sortie : 1 MiB chacune ; 64 niveaux, 100000 nœuds, 5000 champs fusionnés et 256 types au maximum. Les entiers non sûrs, valeurs non finies et nombres arrondis à zéro par sous-dépassement sont refusés. Les autres décimaux suivent la précision flottante du navigateur.
Usages courants
- Ébaucher les types d’une réponse d’API.
- Repérer les champs potentiellement absents d’un tableau d’objets.
- Créer des déclarations lisibles pour du JSON imbriqué.
Confidentialité
Votre JSON et le code généré sont traités uniquement dans votre navigateur, sans envoi ni enregistrement automatique. Aucun code présent dans la saisie n’est exécuté.
Pour conserver les résultats, copiez-les ou téléchargez-les avant de quitter la page.
Questions fréquentes
Pourquoi les dates ne deviennent-elles pas Date ?
JSON n’a pas de type Date. Les chaînes ressemblant à des dates restent string ; la conversion à l’exécution relève de votre application.
Comment les champs facultatifs sont-ils détectés ?
Un champ devient facultatif lorsqu’il est présent dans certains objets d’exemple mais absent des autres. Fournissez plusieurs exemples représentatifs pour mieux refléter les champs possibles.
Quelle différence entre null et un champ absent ?
null est une valeur explicite d’un champ présent ; un champ absent n’existe pas. Une union et un marqueur facultatif expriment ces deux cas.
Que deviennent les tableaux de types différents ?
Les objets compatibles sont fusionnés, les nombres deviennent number, et les types primitifs hétérogènes sont conservés dans une union.
Le résultat valide-t-il les données à l’exécution ?
Non. TypeScript décrit les types statiquement, sans validation JSON automatique à l’exécution ni connaissance des cas absents de l’échantillon.