Passer au contenu

JSON vers TypeScript

JSON vers TypeScript convertit localement des exemples JSON en interfaces TypeScript et alias de type, avec champs facultatifs, inférence union/null/Date, nom du type racine et copie/téléchargement en .ts.

JSON

Caractères

0 / 50,000

TypeScript

JSON vers TypeScript

Démarrage rapide

1
Collez un échantillon JSON valide dans l’éditeur de gauche.
2
Définissez un nom de type racine comme ApiResponse si besoin.
3
Vérifiez TypeScript à droite : les objets donnent interface; tableaux/primitifs donnent type alias.
4
Copiez ou téléchargez le .ts généré; l’entrée gère aussi l’échantillon JSON.

Scénarios courants

Transformer rapidement de vraies réponses API en types TypeScript réutilisables dans un frontend, un SDK ou une phase d’intégration.

Avant de figer le contrat, observer avec un échantillon JSON comment sont inférés les champs optionnels, null et les unions.

Convertissez des données JSON fictives en définitions de type rapides pour des fixtures, des stories Storybook ou des prototypes.

Quand la réponse backend change, vérifier avec un nouvel échantillon JSON si des types imbriqués comme User ou Meta doivent être mis à jour.

Conseils d'utilisation

Utilisez un échantillon représentatif de JSON. Il s’agit d’une inférence basée sur des échantillons, donc les champs ou valeurs manquants ne peuvent pas apparaître dans la sortie.
Les tableaux vides deviennent unknown[] et les objets vides deviennent des interfaces étendant Record<string, unknown> jusqu'à ce que vous fournissiez des données plus riches.
Les déclarations imbriquées sont normalisées à partir des noms de propriété, donc la sortie récente préfère des noms comme User ou Meta plutôt que les anciennes formes préfixées par la racine.
La génération ne fonctionne qu'avec du JSON valide. Corrigez d'abord les erreurs de syntaxe; l'éditeur affiche ligne et colonne en cas d'échec d'analyse.
Les noms racine personnalisés valides sont conservés tels quels; les noms invalides sont normalisés en identifiant TypeScript PascalCase valide.

Limites d’inférence de type

Le générateur déduit à partir de l'échantillon actuel, et non à partir de JSON Schema, d'OpenAPI, de GraphQL, de fichiers, d'URL, de JSON Lines ou d'échantillons par lots.
Les tableaux fusionnent les formes d'éléments observés: les champs manquants dans certains éléments deviennent facultatifs et les valeurs nulles ou mixtes deviennent des unions.
Les chaînes de type date peuvent être déduites comme Date, mais la valeur d'exécution JSON est toujours une chaîne à moins que votre code ne l'analyse.
Les racines objet génèrent une interface ; les racines tableau et primitives génèrent des alias de type ; les tableaux vides utilisent unknown[] et les objets vides étendent Record<string, unknown>.
Le nom du type racine par défaut est Root. Les noms personnalisés valides sont conservés, tandis que les noms invalides et les mots réservés sont normalisés en PascalCase.
La sortie est constituée uniquement de déclarations TypeScript statiques: pas de validateur d'exécution, d'analyseur, de sérialiseur, de schéma Zod/Yup/io-ts ou de client API.

Limitations et compatibilité

Cet outil déduit les types à partir d'échantillons de données, et non à partir d'un schéma formel ou d'une source de vérité contractuelle. Les champs manquants dans votre échantillon ne peuvent pas être devinés.
L'entrée doit être du JSON strict. Les commentaires, virgules finales et autres syntaxes propres à JavaScript sont rejetés.
Le code TypeScript généré n'inclut pas les instructions d'exportation. Le téléchargement d'un fichier .ts est distinct de l'ajout du mot-clé d'exportation dont votre projet peut avoir besoin.
Le résultat est uniquement du code TypeScript statique. Il ne crée pas de validateurs d'exécution, d'analyseurs, de sérialiseurs, de schémas Zod ou de clients API.

Confidentialité & sécurité

JSON vers TypeScript s’exécute localement dans le navigateur. L’entrée JSON peut rester comme brouillon du navigateur. Si un espace de travail enregistré ou une synchronisation WebDAV est activé, l’entrée JSON, le nom du type racine, les préférences de numéros de ligne entrée/sortie et les préférences de retour à la ligne peuvent être enregistrés par cette synchronisation. Le TypeScript généré, les erreurs de validation, les surlignages ligne/colonne, l’état de copie et l’historique d’annulation sont dérivés de l’entrée actuelle et ne sont pas enregistrés comme données de résultat séparées. Les téléchargements du JSON d’entrée et de la sortie .ts sont créés uniquement lorsque vous cliquez sur Download. Cet outil ne téléverse pas de fichiers et ne crée pas de pièces jointes.

FAQ

6

Poursuivez avec ces outils associés pour l’étape suivante.

Tout le traitement des outils s'effectue localement dans votre navigateur.