Aller au contenu
Tout en local

Schéma GraphQL en types TypeScript

Convertissez un schéma GraphQL en types, interfaces et énumérations TypeScript correspondants.

Entrée
Sortie

Schéma GraphQL en types TypeScript

Collez un document de schéma GraphQL (SDL) — les déclarations de types, d'entrées et d'interfaces qui décrivent une API GraphQL — et cet outil génère les types TypeScript correspondants. Équipes backend et frontend obtiennent des formes typées pour chaque objet du schéma en une seule passe, sans configurer une étape de compilation juste pour voir les types.

Le mappage des scalaires suit la spécification GraphQL : ID et String deviennent string, Int et Float deviennent number, Boolean reste boolean, et tout scalaire personnalisé — DateTime, JSON, Upload — revient à un type configurable. Les champs annulables peuvent être optionnels (field?: Type) ou unions explicites avec null (field: Type | null). Choisissez les alias de type TypeScript ou les interfaces, avec implements devenant extends quand les interfaces sont sélectionnées. Les énumérations génèrent une union de littéraux de chaîne ou une véritable énumération TypeScript. Un préfixe ou suffixe de nom évite les collisions, et les commentaires du schéma sont conservés en tant que JSDoc.

Les arguments de champ et les directives sont supprimés automatiquement, car les types TypeScript décrivent la forme : "field(id: ID!): User @deprecated" devient un champ simple. Les types de listes imbriquées comme [String!]! conservent leur anulabilité indépendante. Les déclarations peuvent être triées alphabétiquement.

Tout s'exécute localement dans votre navigateur — le schéma n'est jamais téléchargé. Copiez les types générés, téléchargez-les en .txt, ou renvoyez la sortie à l'entrée pour affiner le schéma.

FAQ

Gère-t-il les modificateurs de liste imbriquée et non annulable comme [String!]! ?
Oui. Chaque niveau d'anulabilité — la liste elle-même et ses éléments — est mappé indépendamment, donc [String!]! devient string[] tandis que [String] devient (string | null)[].
Que se passe-t-il avec les scalaires personnalisés comme DateTime ou JSON ?
Ils sont mappés au type de secours défini dans l'option "Type scalaire personnalisé" (unknown par défaut). Réglez-le sur string, Date ou tout autre type correspondant et chaque champ utilisant ce scalaire le récupère.
Les arguments de champ et les directives sont-ils conservés dans la sortie ?
Non. Les types TypeScript décrivent uniquement la forme, donc les arguments comme (limit: Int) et les directives comme @deprecated sont supprimés ; le champ lui-même se convertit toujours normalement.
Puis-je générer des interfaces à la place des alias de type ?
Oui. Basculez "Type de déclaration" sur Interfaces, et toute clause implements sur un type GraphQL devient une clause extends sur l'interface TypeScript.
Mon schéma est-il téléchargé quelque part ?
Non. La conversion s'exécute entièrement dans votre navigateur — votre schéma GraphQL ne quitte jamais votre appareil.