Schéma GraphQL vers types TypeScript
Générez des types à partir de fichiers .graphql avec codegen
Schéma GraphQL vers types TypeScript est une leçon TypeScript Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage TypeScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours TypeScript Academy comprend 4 leçons au total.
Le problème : divergence entre le schéma et les types
Dans les projets GraphQL, le schéma du serveur et les types TypeScript du client peuvent facilement ne plus être synchronisés sans automatisation. La génération de code résout ce problème en dérivant directement les types du schéma.
# Without codegen: manual types that drift from schema
interface User { id: string; name: string; } // may not match schemaGénérateur de code GraphQL
@graphql-codegen/cli lit votre schéma GraphQL et génère automatiquement des types TypeScript.
npm install --save-dev @graphql-codegen/cli @graphql-codegen/typescriptConfiguration de codegen.yml
Configurez la source du schéma et l’emplacement de sortie dans codegen.yml.
# codegen.yml
schema: "./api/schema.graphql"
generates:
src/generated/types.ts:
plugins:
- typescriptExécuter le générateur
Exécutez graphql-codegen pour générer les types TypeScript à partir de votre schéma.
npx graphql-codegen
# Generates src/generated/types.ts with all schema typesExemple de sortie générée
Le fichier généré contient des interfaces TypeScript correspondant à chaque type GraphQL de votre schéma.
// src/generated/types.ts (generated)
export type User = {
__typename?: "User";
id: string;
name: string;
email: string;
};
export type Query = {
__typename?: "Query";
user?: Maybe<User>;
};Schéma provenant d’un point de terminaison distant
Le générateur de code peut également récupérer le schéma depuis un point de terminaison GraphQL actif en utilisant l’introspection.
# codegen.yml with remote schema
schema:
- https://api.example.com/graphql:
headers:
Authorization: "Bearer ${AUTH_TOKEN}"Correspondance des types scalaires
Associez les scalaires GraphQL personnalisés à des types TypeScript dans la configuration du générateur de code.
# codegen.yml
config:
scalars:
DateTime: string
JSON: Record<string, unknown>
Upload: FileGestion des énumérations
Les énumérations GraphQL sont converties en énumérations de chaînes TypeScript ou en types union selon la configuration du générateur de code.
# Generated from GraphQL enum Role { ADMIN USER GUEST }
export enum Role {
Admin = "ADMIN",
User = "USER",
Guest = "GUEST",
}Non nul et Maybe
Les champs GraphQL pouvant être nuls deviennent Maybe (c’est-à-dire T | null | undefined) dans les types générés, ce qui reflète la nullabilité du schéma.
// GraphQL: name: String (nullable)
// Generated: name?: Maybe<string>
// GraphQL: id: ID! (non-null)
// Generated: id: stringIntégration continue
Exécutez la génération de code dans l’intégration continue pour vérifier que les types générés sont à jour. Faites échouer la compilation si le schéma a changé sans être régénéré.
# CI: check no drift
npx graphql-codegen --check
# Exits 1 if generated files are out of dateRécapitulatif : du schéma aux types
Le générateur de code GraphQL lit votre schéma et produit automatiquement des types TypeScript. Configurez-le avec codegen.yml, exécutez graphql-codegen et intégrez-le à l’intégration continue pour éviter les divergences du schéma.
Vérification rapide
Quel est l’objectif principal du générateur de code GraphQL ?
Ce que vous avez appris
Le générateur de code GraphQL élimine les divergences entre le schéma et les types en générant du TypeScript à partir de votre schéma. Configurez-le avec codegen.yml, associez les scalaires personnalisés et intégrez-le à l’intégration continue pour garantir l’actualisation des types.
Questions Fréquemment Posées
La leçon « Schéma GraphQL vers types TypeScript » est-elle gratuite ?
Oui — le texte complet de « Schéma GraphQL vers types TypeScript » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours TypeScript Academy, passe à CoddyKit PRO. Le cours TypeScript Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Schéma GraphQL vers types TypeScript » ?
Générez des types à partir de fichiers .graphql avec codegen Tu pratiques TypeScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer TypeScript Academy ?
Aucune expérience préalable n'est requise. TypeScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Schéma GraphQL vers types TypeScript » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon TypeScript Academy ?
Oui. Chaque leçon TypeScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Schéma GraphQL vers types TypeScript
- Résolveurs typés avec GraphQL Code Generator
- Client GraphQL typé avec Apollo et urql
- Sûreté des types de bout en bout : flux de travail fondé sur le schéma