Colle ton TypeScript à gauche et clique sur "Convertir" — on te le transforme en JSONColle du TypeScript

Ce que fait cet outil

Tu as une interface TypeScript avec un littéral d'objet typé, ou une affectation const config: Config = {...}, et il te faut cette valeur en vrai JSON — pour une requête API, une fixture ou un exemple OpenAPI. Colle tout le bloc ici. L'outil retire les annotations de type, résout le littéral et te rend du JSON qui parse n'importe où.

La syntaxe purement de type est traitée comme le compilateur TypeScript la traiterait à l'émission : interfaces et alias de type sont effacés, as const et satisfies ne changent pas la sortie, Record<string, X> reste un objet, les modificateurs readonly et ? sont ignorés dans le JSON (les champs optionnels absents ne sont tout simplement pas là). Les chaînes sont mises entre guillemets comme le fait JSON.stringify — guillemets doubles, échappés quand il faut — et les clés sont toujours des strings.

Les enums émettent leur valeur runtime. Un enum numérique devient un nombre, un enum de strings une string. Les instances de Date ressortent en ISO-8601 comme le prévoit la RFC 8259. Les propriétés undefined disparaissent, null reste null. Tu peux coller plusieurs interfaces et leurs instances d'un seul coup — chaque instance devient une entrée de premier niveau dans le JSON.

Comment l'utiliser

Trois étapes. Ça marche pour une interface de cinq lignes comme pour un module <code>types.ts</code> complet.

1

Colle ton TypeScript (ou essaie l'exemple)

Dépose-le dans l'éditeur de gauche. Une interface + objet typé, un alias de type, des définitions d'enum ou des const exportées — tout passe. Clique sur Charger un exemple pour voir à quoi ressemble une entrée réaliste.

Laisse la syntaxe façon handbook TypeScript telle quelle — pas besoin de retirer les generics, les décorateurs ou les import type. La référence JSON sur MDN reprend comment se fait le mapping JS vers JSON si tu veux une piqûre de rappel.

2

Clique sur Convertir

Appuie sur le bouton vert Convertir. L'outil efface les infos de type, évalue les littéraux et les sérialise comme le ferait JSON.stringify(obj, null, 2).

3

Copie le JSON

Le panneau de droite affiche du JSON formaté prêt à coller dans un body de requête, un exemple OpenAPI ou une fixture de test unitaire.

Quand ça rend vraiment service

Exemples de requête API

Tu as un DTO de requête Angular, Next.js ou NestJS et il te faut un payload JSON pour Swagger, Postman ou un curl. Colle l'interface + l'objet, récupère le JSON.

Fixtures de tests unitaires

Transforme un mock typé inline d'un test Jest ou Vitest en fixture JSON autonome pour MSW, Playwright ou des runs d'intégration.

Exemples OpenAPI et JSON Schema

Colle l'interface <code>User</code> et une instance d'exemple pour générer d'un coup le bloc <code>example</code> de ton schéma <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI</a>.

Migrer une config vers JSON

Tu passes d'un <code>config.ts</code> typé à un store de config en JSON ? Colle le const typé, récupère du JSON propre et dépose-le dans ton nouveau système.

Questions courantes

Est-ce que ça retire les annotations de type et les generics ?

Oui. Interfaces, alias de type, paramètres génériques, casts as, satisfies et readonly sont tous effacés comme le compilateur TypeScript les efface. Le JSON ne reflète que la valeur runtime.

Comment sont traités les enums ?

Les enums numériques émettent le nombre, les enums de strings émettent la string. const enum est traité comme un enum normal pour la conversion. Les références à des enums à l'intérieur du littéral sont résolues vers leurs valeurs déclarées.

Et les champs optionnels et les types Record ?

Les champs optionnels (name?: string) absents n'apparaissent simplement pas dans le JSON — même comportement que JSON.stringify par défaut. Record<string, X> reste un objet JSON indexé par les clés string fournies.

Je peux coller un fichier de types entier ?

Oui. Plusieurs interfaces, alias de type, enums et const typés peuvent cohabiter dans un seul coller. Chaque instance typée de premier niveau devient sa propre entrée dans le JSON, avec les types imbriqués développés sur place.

Comment sont traités Date, null et undefined ?

Les valeurs Date deviennent des strings ISO-8601. null reste null en JSON. Les propriétés undefined disparaissent des objets. Dans un array, un undefined devient null dans le slot — comme avec JSON.stringify.

Est-ce que mon code est stocké ?

Le code est envoyé au backend uniquement pour la conversion. Il n'est ni loggué ni persisté. Si tu colles quelque chose de sensible, relis-le d'abord.

D'autres outils qui peuvent servir

TypeScript vers JSON n'est qu'une pièce du puzzle. Voici les outils qui vont bien avec :