Command Palette

Search for a command to run...

JS

JSON vers TypeScript

Générez des interfaces TypeScript à partir de n'importe quel exemple JSON. Déduit les types imbriqués, fusionne les tableaux d'objets dans une seule interface, marque les clés nullables et manquantes en option et émet un code exportable propre. 100% côté client.

Qu'est-ce que le convertisseur JSON en Typescript ?

Le convertisseur JSON vers TypeScript lit un exemple de valeur JSON - une réponse API, un fichier de configuration, un enregistrement de base de données - et écrit les interfaces TypeScript qui le décrivent Les objets imbriqués deviennent leurs propres interfaces nommées, les tableaux d'objets sont fusionnés en une interface à élément unique plutôt qu'en une union tentaculaire, et les clés nulles ou manquantes dans certains enregistrements sont marquées comme facultatives Vous collez des données que vous possédez déjà ; vous obtenez des types que vous écririez autrement à la main.

Taper une réponse API à la main est fastidieux et sujet aux erreurs d'une manière spécifique : vous tapez ce que vous * pensez * le point final renvoie, pas ce qu'il a renvoyé Les champs que vous n'avez jamais remarqué sont omis, un entier qui est parfois nul est tapé comme ```, et l'erreur fait surface au moment de l'exécution en production plutôt que dans votre éditeur La génération de types directement à partir d'une charge utile réelle comble cet écart, car la forme que vous compilez est la forme envoyée par le serveur.

Tout tourne dans votre navigateur Le moteur d'inférence est TypeScript sans dépendance, pas un wrapper autour d'un service distant, donc les charges utiles - qui transportent régulièrement les jetons d'accès, les dossiers clients et les ID internes - ne quittent jamais la page Choisissez des interfaces ou tapez des alias, basculez le mot-clé `export` et les modificateurs `readonly`, choisissez votre largeur d'indentation, puis copiez la sortie ou téléchargez un fichier.ts.

Un moyen rapide de voir ce que vous donne la conversion JSON en TypeScript est l'échantillon intégré Appuyez sur Load Sample, puis Générez Vous obtenez trois interfaces JSON à TypeScript : `Root`, `Owner` et `Release` La deuxième version n'a pas de clé `notes, donc l'interface fusionnée `Release` reads ? : string`, et `retiredAt` is null in the only record, so it becs `redAt ? : null` That is the honnet result, car one null donne aucune preuve du vrai type Pour convertir JSON en TypeScript pour un point final réel, collez plusieurs enregistrements.

Les interfaces générées décrivent l'échantillon que vous avez fourni, pas l'API que vous appelez, et cette distinction est tout le risque Un champ qui se trouve être présent dans chaque objet de votre échantillon est marqué requis même si le serveur l'omet parfois, et un champ qui est nul dans l'échantillon ne peut pas être distingué d'un qui est toujours nul Les tableaux vides sont le cas le plus clair : un tableau sans éléments ne donne aucune information sur ce qu'il contient La fusion de tableaux aide ici en combinant chaque objet d'une liste dans une interface et en marquant les clés qui manquent dans certaines entrées comme facultatives, donc un échantillon plus grand et plus varié produit un type plus honnête Où l'API a un schéma ou un document OpenAPI, générer à partir de cela et utiliser cette réponse non document à la place.

Comment utiliser le convertisseur JSON en Typescript ?

  1. Collez votre JSON

    Déposez une réponse d'API, un fichier de luminaires ou toute valeur JSON. Chargez l'exemple en premier si vous souhaitez voir comment les objets imbriqués, les tableaux et les champs NULL sont gérés.

  2. Nommez le type de racine

    Définissez le nom du type racine - généralement la ressource, comme l'utilisateur ou la facture. Les interfaces imbriquées sont nommées automatiquement à partir de leur clé, avec les noms des éléments du tableau singularisés (les versions deviennent Release).

  3. Choisissez votre style de sortie

    Choisissez Interface ou Type d'alias, décidez d'exporter chaque déclaration, ajoutez des modificateurs en lecture seule si votre base de code préfère les formes immuables et définissez l'indentation sur 2 ou 4 espaces.

  4. Générer, puis copier ou télécharger

    Appuyez sur Générer. Vérifiez les options et les syndicats inférés, puis copiez le code dans votre presse-papiers ou téléchargez-le sous la forme d'un fichier .ts prêt à être déposé dans votre dossier Types.

Principales caractéristiques

  • Extraction d'interface imbriquée

    Chaque objet imbriqué devient sa propre interface réutilisable nommée au lieu d'une forme anonyme en ligne, vous pouvez donc importer et référencer les types internes de manière indépendante.

  • Fusion de réseau intelligent

    Un tableau d'objets est fusionné dans une interface d'élément. Les clés présentes dans certains enregistrements, mais pas d'autres, ne deviennent facultatives, ce qui est exactement le comportement des données d'API paginées réelles.

  • Nullable Manipulation que vous contrôlez

    Choisissez si une valeur nulle signifie que la clé est facultative ou si NULL appartient à l'union. Les deux conventions sont courantes ; l'outil n'en force pas une sur votre base de code.

  • Interfaces ou alias de type

    Émettez `Interface User {}` ou `type user = {}` pour correspondre à vos règles LINT existantes, avec des modificateurs facultatifs `export` et `readonly` appliqués de manière cohérente dans chaque déclaration.

Frequently Asked Questions

Collez votre JSON dans l'éditeur, définissez le nom du type racine et appuyez sur Générer L'outil infère le type de chaque clé, extrait les objets imbriqués dans leurs propres interfaces et génère le code que vous pouvez copier directement dans un fichier.ts. Aucune inscription et aucun téléchargement - l'inférence s'exécute dans votre navigateur.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to typescriptjson to typescript interfaceconvert json to typescriptjson to interface generatortypescript type generatorjson to typegenerate typescript from jsonapi response typestypescript interface from apijson schema to typescript