Convertisseur JSON vers TypeScript
Générez des interfaces ou des alias de type TypeScript à partir d'un exemple JSON : types imbriqués, éléments fusionnés, champs optionnels, export.
Vos saisies et fichiers restent dans le navigateur
Entrée JSON
Collez un exemple de JSON : les interfaces TypeScript sont générées au fil de la saisie.
Dans l’éditeur, Tab indente. Appuyez sur Échap puis sur Tab pour quitter l’éditeur.
Les interfaces TypeScript apparaîtront ici...
Sur cette page
Collez un exemple JSON — une réponse d'API, un fichier de configuration, une fixture de test — et obtenez les déclarations TypeScript correspondantes au fil de la saisie. Les objets imbriqués deviennent des interfaces nommées à part entière, la sortie peut donc aller directement dans un fichier .ts.
Fonctionnalité détaillée
Les types sont déduits des valeurs : string, number, boolean, null, les tableaux en T[], les tableaux hétérogènes en unions comme (number | string | null)[] et un tableau vide en unknown[]. Chaque objet imbriqué reçoit une interface nommée d'après son chemin en PascalCase (shipping_address dans Order → OrderShippingAddress). Tous les objets d'un tableau sont fusionnés en un seul type d'élément : une clé absente de certains éléments devient optionnelle, et une clé dont les valeurs sont de types différents reçoit une union.
Options : Nom racine définit le nom du type de premier niveau (par défaut Root) ; Mot-clé export ajoute export à chaque déclaration ; Champs optionnels (?) — activé par défaut — marque comme optionnelles les clés dont la valeur est null ; Utiliser un alias de type écrit type X = { … }; au lieu de interface X { … }. Un tableau à la racine produit un alias comme export type Users = UsersItem[];. Les clés qui ne sont pas des identifiants valides sont mises entre guillemets ("order-id": string;), et les noms de type en collision reçoivent un suffixe numérique.
La sortie est régénérée à chaque modification (après une courte pause) ainsi qu'au clic sur Convertir ou avec Ctrl+Entrée ; un JSON invalide affiche l'erreur du parseur. Le résultat se trouve dans un éditeur en lecture seule que vous pouvez Copier ou enregistrer avec Télécharger .ts sous le nom types.ts. Tout s'exécute localement — l'exemple n'est jamais envoyé ni enregistré.
Exemples pratiques
Objet d'API : {"id":7,"user_name":"ann","tags":["a"],"manager":null} avec le Nom racine User et Mot-clé export donne export interface User { id: number; user_name: string; tags: string[]; manager?: null; }.
Tableau d'objets différents : [{"id":1,"email":"[email protected]"},{"id":2,"phone":"555"}] avec le Nom racine Users donne export interface UsersItem { id: number; email?: string; phone?: string; } et export type Users = UsersItem[];.
Alias de type et clés entre guillemets : {"order-id":"A1","items":[{"sku":"x","qty":2}],"shipping_address":{"city":"Omsk"}} avec le Nom racine Order et Utiliser un alias de type donne type OrderItemsItem = { sku: string; qty: number; };, type OrderShippingAddress = { city: string; }; et type Order = { "order-id": string; items: OrderItemsItem[]; shipping_address: OrderShippingAddress; };.
Comment utiliser cet outil
Collez votre JSON
Placez un exemple JSON dans l'éditeur Entrée JSON. La Sortie TypeScript se met à jour automatiquement.
Ajustez les options
Définissez le Nom racine et activez ou désactivez Mot-clé export, Champs optionnels (?) et Utiliser un alias de type selon vos besoins.
Récupérez les types
Cliquez sur Copier pour copier les déclarations ou sur Télécharger .ts pour les enregistrer sous le nom
types.ts.
Conseils et bonnes pratiques
- Un exemple ne montre que les valeurs qu'il contient : un champ à
nulldans l'exemple est typénull, remplacez-le donc à la main par le type réel (par exemplestring | null). - Incluez plusieurs éléments de tableau avec des champs optionnels différents pour obtenir le bon type d'élément.
- Tous les nombres deviennent
number, et les dates au format ISO restentstring. - Désactivez Champs optionnels (?) si les valeurs
nullsont toujours envoyées explicitement et que vous voulezmanager: nullcomme clé obligatoire. - Les noms de propriétés gardent leur graphie d'origine ; seuls les noms de type sont convertis en PascalCase.