Aller au contenu
TextArray
Tout en local

JSON vers TypeScript

Générez des interfaces TypeScript à partir d'un document JSON, avec des objets imbriqués comme sous-interfaces nommées.

Entrée

JSON vers TypeScript

Collez un document JSON (une réponse API, un fichier de configuration, une ligne de base de données) et obtenez des déclarations TypeScript prêtes à l'emploi. Les types sont déduits de manière récursive : les primitives sont mappées en chaîne, nombre et booléen, les tableaux portent leur type d'élément et les tableaux mixtes deviennent des unions propres telles que (nombre | chaîne)[]. Chaque objet imbriqué devient une sous-interface nommée dérivée de sa clé de propriété dans PascalCase, donc une propriété « utilisateur » produit une interface utilisateur que vous pouvez importer et référencer n'importe où.

Les formes identiques sont détectées et réutilisent une seule interface au lieu de générer des doublons ; un suffixe numérique apparaît uniquement lorsque deux objets partagent un nom de clé mais diffèrent par leur structure. Les tableaux vides apparaissent sous la forme d'unknown[] et les objets vides sous la forme d'un Record<string, unknown> — des espaces réservés honnêtes plutôt que des suppositions. Les noms de propriété qui ne sont pas des identifiants valides sont automatiquement cités, de sorte que la casse du kebab et les clés numériques survivent intactes.

Les options couvrent les conventions réelles du projet. Nommez le type racine, choisissez entre les déclarations d'interface et de type, exportez tout ou rien, marquez toutes les propriétés en lecture seule et décidez comment les valeurs nulles sont traitées - en tant que type nul explicite ou en tant que propriétés facultatives. Un JSON invalide produit une erreur calme avec la ligne et la colonne du problème, de la même manière que le formateur JSON le signale.

Tout s'exécute localement dans votre navigateur : les réponses API avec des jetons, des enregistrements d'utilisateurs ou des charges utiles internes ne quittent jamais votre machine. Collez, copiez les déclarations dans votre base de code et la forme de vos données est saisie.

FAQ

Comment les objets et les tableaux imbriqués sont-ils typés ?
Les objets imbriqués deviennent des sous-interfaces nommées dérivées de leur clé de propriété dans PascalCase. Les tableaux prennent leur type d'élément ; lorsque les éléments diffèrent, le type est une union telle que (number | string)[]. Un tableau d'objets de même forme réutilise une interface pour tous les éléments.
Que se passe-t-il avec deux objets de même forme ?
Ils partagent une interface : le générateur compare les structures et réutilise le prénom. Un suffixe numérique tel que Item2 apparaît uniquement lorsque deux propriétés ont la même clé mais des formes véritablement différentes.
Comment les valeurs nulles sont-elles gérées ?
Par défaut, une propriété null est saisie comme null, ce qui correspond exactement à ce que dit l'exemple. Activez plutôt « Propriétés facultatives pour les valeurs nulles » pour émettre prop? : inconnu – utile lorsque null signifie "parfois absent" dans votre API.
Pourquoi mon tableau vide est-il saisi comme inconnu[] ?
Un tableau vide ne contient aucune preuve de son type d'élément, donc unknown[] est la réponse honnête. Ajoutez un élément représentatif à l’échantillon et le générateur en déduit le type réel.
Mon JSON est-il téléchargé quelque part ?
Non. L'outil s'exécute entièrement dans votre navigateur et vos données ne quittent jamais votre appareil, sans danger pour les réponses API contenant des jetons ou des données personnelles.