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.
La saisie manuelle d'une réponse API est fastidieuse et sujette aux erreurs d'une manière spécifique : vous tapez ce que vous * pensez * que le point de terminaison renvoie, pas ce qu'il a réellement renvoyé. Les champs que vous n'avez jamais remarqués sont omis, un entier parfois nul est saisi en tant que "numéro" et l'erreur fait surface lors de l'exécution dans la production plutôt que dans votre éditeur. Générer des types directement à partir d'une charge utile réelle comble cet écart, car la forme sur laquelle vous compilez est la forme que le serveur a réellement envoyée.
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.
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 ?
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.
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).
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.
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
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!