Outils

Convertisseur JSON vers interfaces TypeScript

Collez une réponse d’API et obtenez ses interfaces ou alias de type TypeScript, avec les clés facultatives déduites des données.

S’exécute dans le navigateurConvertisseurs de code13,9 k
Gratuit

Entrée

0 B

Résultat

Le résultat apparaîtra ici.

Typer à la main une réponse d’API est lent, et c’est là que les erreurs se glissent : un champ parfois absent, une valeur parfois null, un tableau dont les objets n’ont pas tous les mêmes clés. Cet outil confie votre JSON à quicktype, le générateur de types dont Glide a ouvert le code et le moteur de l’extension d’éditeur Paste JSON as Code, et renvoie des interfaces que vous pouvez coller directement dans un projet. Lorsque le JSON est un tableau, chaque élément est comparé : une clé présente dans certains d’entre eux seulement ressort facultative, et une valeur parfois null ressort sous forme d’union avec null.

Comment ça marche

  • quicktype-core s’exécute dans la page ; la bibliothèque pèse environ un mégaoctet, elle n’est donc téléchargée que la première fois que vous cliquez sur Exécuter dans cet outil.
  • Les objets imbriqués deviennent des interfaces nommées à part entière, et les formes identiques trouvées à différents endroits sont fusionnées en un seul type.
  • Les chaînes qui ressemblent à des dates restent typées string, car c’est ce que JSON.parse vous renvoie réellement.
  • Choisissez des déclarations interface ou alias de type, marquez tous les champs readonly et fixez le nom du type de premier niveau.

Où vont vos données

Nulle part. Cet outil s’exécute entièrement dans votre navigateur : le texte collé est traité par la page, jamais transmis à un serveur ni consigné dans un journal.

Cet outil est gratuit et ne demande aucun compte. Ses résultats n’existent que dans la page ouverte et ne sont enregistrés nulle part.

Ce que ça coûte

Cet outil est gratuit, sans connexion ni points.

Questions fréquentes

Comment décide-t-il qu’un champ est facultatif ?
Uniquement d’après les données que vous lui fournissez. Si le JSON est un tableau d’objets et qu’une clé manque dans au moins l’un d’eux, cette clé reçoit un point d’interrogation. Un objet isolé n’apporte aucun indice dans un sens ou dans l’autre, donc toutes ses clés sont obligatoires. Collez plusieurs réponses réelles sous forme d’un seul tableau si vous voulez que les clés facultatives soient justes.
Pourquoi un champ est-il typé null et non string | null ?
Parce que toutes les valeurs de l’échantillon étaient null, quicktype n’avait rien d’autre sur quoi s’appuyer — il ne peut pas savoir ce que contient le champ lorsqu’il est renseigné. mirror_url dans l’exemple GitHub illustre ce cas. Ajoutez un exemple où le champ a une valeur, ou élargissez le type à la main.
Interface ou alias de type : lequel choisir ?
Pour de simples formes d’objets, ils sont interchangeables en pratique. Les interfaces peuvent être étendues et fusionnées par redéclaration, ce dont certaines bibliothèques dépendent ; les alias de type peuvent en plus exprimer des unions et des types mappés. La plupart des bases de code s’en tiennent à l’un des deux, et l’option est là pour correspondre à la vôtre.
Cela valide-t-il la réponse à l’exécution ?
Non. Les types TypeScript disparaissent à la compilation, donc une réponse non conforme passe quand même. Si vous avez besoin de la vérification à l’exécution, générez un schéma Zod à partir du même JSON avec l’outil JSON vers Zod de ce site et analysez la réponse avec lui.

L’open source derrière

Cet outil fonctionne grâce à glideapps/quicktype, publié sous licence Apache-2.0. Si vous avez besoin du même comportement dans votre propre programme, c’est cette bibliothèque qu’il faut utiliser.

glideapps/quicktype

Aussi appelé

  • json vers typescript
  • json en interface typescript
  • générer type typescript depuis json
  • convertir json en typescript
  • quicktype en ligne
  • réponse api vers typescript