Développeur

JSON vers TypeScript

Transformez un objet JSON en interfaces TypeScript typées.

  • Instantané
  • Gratuit
  • Privé (traité localement)
  • Sans inscription

Interfaces TypeScript

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 « ? ».

  1. Collez le JSON

    Une réponse d’API, un fichier de config, n’importe quel objet.

  2. Nommez la racine

    « Root » par défaut, ou le nom de votre choix.

  3. Copiez les interfaces

    Prêtes à coller dans votre fichier .ts.

Exemple d’inférence

Valeur JSONType déduit
"name": "Ada"name: string
"age": 36age: 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é.