TS vers GraphQL SDL
Générateur de schémas GraphQL SDL

Convertisseur d'interfaces TypeScript en schéma GraphQL SDL

Référence pour développeurs convertissant interfaces, types et énumérations TypeScript en schémas GraphQL Schema Definition Language (SDL) prêts pour la production.

Préréglages
Entrée d'interfaces et types TypeScript
# No TypeScript interfaces, types, or enums detected in source.
# Paste TypeScript definitions or select a scenario preset above.
Types définis
0 Types et Inputs
Nombre total de champs
0 Champs générés
Énumérations & Unions
1.98ms (AST client pur)

Analyse AST côté client

Toutes les interfaces, alias de types et enums TypeScript sont analysés localement dans la mémoire du navigateur sans envoyer de code à des serveurs distants.

Génération complète de SDL GraphQL

Convertit les modèles TypeScript complexes en types d'objets, types d'entrée, énumérations, unions et scalaires personnalisés conformes au GraphQL SDL standard.

Prêt pour la production et export multi-onglets

Exportez des définitions complètes de schémas (.graphql), des types d'entrée séparés ou des signatures de résolveurs avec copie et téléchargement instantanés.

Référence technique et guide d'architecture

Aide-mémoire TypeScript vers GraphQL SDL — Guide de référence

Référence pour développeurs convertissant interfaces, types et énumérations TypeScript en schémas GraphQL Schema Definition Language (SDL) prêts pour la production.

Paramètres clés et contrôles

nullabilityMode'ts' | 'strict' | 'nullable'

Contrôle la sémantique de nullabilité des champs GraphQL. 'ts' reproduit fidèlement l'optionnalité (? et null) ; 'strict' impose le non-null (!) par défaut ; 'nullable' rend l'ensemble des champs optionnels.

Par défaut : 'ts'
autoMapIdboolean

Transforme les propriétés TypeScript nommées id, _id ou se terminant par Id de string ou number vers le scalaire nativo GraphQL ID.

Par défaut : true
smartNumbersboolean

Distingue les types number TypeScript en scalaires GraphQL Int ou Float selon les conventions de nommage et l'analyse de l'AST.

Par défaut : true
generateInputsboolean

Génère les types d'objets input GraphQL correspondants, en omettant les identifiants en lecture seule et en adaptant les sous-types.

Par défaut : true
parseDeprecationboolean

Détecte les balises JSDoc @deprecated sur les propriétés TypeScript et les convertit en directives @deprecated(reason: "...") de GraphQL.

Par défaut : true

Conseils de pro et bonnes practices

Préserver la Documentation JSDoc

Commentez vos interfaces TypeScript avec du JSDoc multiligne (`/** ... */`) pour que le générateur produise automatiquement des blocs de description entre triples guillemets avant chaque champ GraphQL.

Mapper les Unions vers des Enums

Définissez des unions de chaînes littérales (`type Status = 'OPEN' | 'CLOSED'`) pour créer de véritables enums GraphQL plutôt que de rétrograder ces valeurs vers le type scalaire String.

Isoler les Types Input du SDL

Activez `generateInputs` lors de la conception de mutations afin d'extraire des types `input` dédiés excluant les identifiants auto-générés et les horodatages système des charges utiles.

Déclarer les Scalaires de Date

Activez `declareScalars` pour ajouter automatiquement l'instruction `scalar DateTime` au sommet du schéma SDL lorsque des objets `Date` TypeScript sont analysés.

Pièges courants et dépannage

Les références circulaires entre interfaces TypeScript déclenchent des erreurs de récursion

Rompez les références bidirectionnelles en rendant le champ de relation nullable ou en utilisant des types union, permettant ainsi au générateur de produire le SDL sans dépassement de pile.

Les types utilitaires comme Omit<T, K> ou Pick<T, K> n'affichent pas leurs champs

Développez les types utilitaires en déclarations d'interface explicites avant la conversion, ou compilez votre code avec `tsc --declaration` afin de fournir un AST structurel résolu.

Foire aux questions (FAQ)

Le code TypeScript est-il analysé et converti intégralement dans le navigateur ?▼

Oui. L'analyse lexicale TypeScript et la conversion de l'AST vers le SDL GraphQL s'effectuent entièrement côté client. Aucun code source ni définition de type n'est transmis à un serveur tiers.

Comment le convertisseur gère-t-il l'héritage d'interfaces TypeScript avec extends ?▼

Comme les types d'objets GraphQL ne gèrent pas l'héritage direct, le convertisseur aplatit les champs de l'interface parente directement au sein du type GraphQL dérivé pour préserver chaque propriété.

L'outil peut-il générer des types input GraphQL distincts des types de requête ?▼

Oui. Lorsque `generateInputs` est activé, l'outil produit des types `input` dérivés avec le suffixe `Input`, en retirant automatiquement les identifiants auto-générés et relations circulaires.

Comment les unions de chaînes littérales TypeScript sont-elles converties en GraphQL ?▼

Les unions pures de chaînes littérales (comme `'DRAFT' | 'PUBLISHED' | 'ARCHIVED'`) sont directement converties en blocs `enum` GraphQL, tandis que les unions d'objets sont mappées sous forme de `union`.

Outils et utilitaires connexes

Tous les outils →