Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsMay 23, 2026·3 min de lectura

TypeGraphQL — Build GraphQL APIs with TypeScript Classes and Decorators

TypeGraphQL is a framework for creating GraphQL schemas and resolvers using TypeScript classes, decorators, and type metadata to eliminate schema duplication and boilerplate.

Listo para agents

Este activo puede ser leído e instalado directamente por agents

TokRepo expone un comando CLI universal, contrato de instalación, metadata JSON, plan según adaptador y contenido raw para que los agents evalúen compatibilidad, riesgo y próximos pasos.

Native · 98/100Política: permitir
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Single
Confianza
Confianza: Established
Entrada
TypeGraphQL Overview
Comando CLI universal
npx tokrepo install 1fa4dd0f-56a2-11f1-9bc6-00163e2b0d79

Introduction

TypeGraphQL is a code-first GraphQL framework for TypeScript that lets developers define schemas using classes and decorators. By leveraging TypeScript's type system and reflect-metadata, it generates the GraphQL schema from your code, ensuring the API types and resolver signatures stay in sync without maintaining a separate SDL file.

What TypeGraphQL Does

  • Generates GraphQL schemas from TypeScript classes annotated with @ObjectType, @Field, and @InputType
  • Defines resolvers using @Query, @Mutation, and @Subscription decorators on class methods
  • Validates input automatically using class-validator decorators on input types
  • Supports middleware, authorization guards, and dependency injection at the resolver level
  • Integrates with Apollo Server, GraphQL Yoga, Express, Fastify, and other GraphQL servers

Architecture Overview

TypeGraphQL uses the reflect-metadata API to read TypeScript type information at runtime, then transforms decorated classes into a GraphQL schema using the graphql-js library. Resolvers are instantiated through a configurable dependency injection container (compatible with TypeDI, tsyringe, and others). Middleware functions wrap resolver execution in an onion-like chain, and authorization checks run before resolver methods via @Authorized decorators.

Self-Hosting & Configuration

  • Enable experimentalDecorators and emitDecoratorMetadata in tsconfig.json
  • Import reflect-metadata at the application entry point before any TypeGraphQL code
  • Call buildSchema() with resolver classes to produce a GraphQL schema object
  • Pass the built schema to any compatible GraphQL server (Apollo Server, Yoga, etc.)
  • Configure a DI container via the container option in buildSchema for dependency injection

Key Features

  • Single source of truth: TypeScript types define both the GraphQL schema and resolver signatures
  • Built-in input validation via class-validator with automatic error formatting
  • Authorization decorators with role-based and custom auth checker functions
  • Generic types, interfaces, and inheritance for reusable schema patterns
  • Subscription support with filtering and topic-based pub/sub integration

Comparison with Similar Tools

  • Pothos (GraphQL Pothos) — code-first schema builder using a fluent API; TypeGraphQL uses class decorators and OOP patterns
  • Nexus — code-first schema construction with a chainable API; TypeGraphQL relies on TypeScript decorators and metadata
  • SDL-first approach — writing .graphql files separately; TypeGraphQL keeps types and resolvers co-located in code
  • GraphQL Code Generator — generates TypeScript types from existing SDL; TypeGraphQL works in the opposite direction
  • tRPC — type-safe RPC without GraphQL; TypeGraphQL provides a full GraphQL API layer with schema introspection

FAQ

Q: Do I still need to write a .graphql schema file? A: No. TypeGraphQL generates the GraphQL schema from your TypeScript classes and decorators. You can optionally emit the SDL for documentation.

Q: Can I use TypeGraphQL with Prisma? A: Yes. Community integrations like typegraphql-prisma auto-generate TypeGraphQL types from your Prisma schema for rapid CRUD API development.

Q: Does TypeGraphQL support subscriptions? A: Yes. Use the @Subscription decorator with topic and filter functions, compatible with graphql-subscriptions or any PubSub implementation.

Q: How does it handle N+1 query problems? A: TypeGraphQL integrates with DataLoader through middleware or field resolvers to batch and cache database queries automatically.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados