Ga naar inhoud
100% lokaal

GraphQL SDL naar TypeScript types

Zet een GraphQL-schema om in overeenkomstige TypeScript types, interfaces en enums.

Invoer
Uitvoer

GraphQL SDL naar TypeScript types

Plak een GraphQL Schema Definition Language (SDL)-document in — de type-, input-, interface- en enum-declaraties die een GraphQL API beschrijven — en deze tool genereert de bijbehorende TypeScript types. Backend-teams die een GraphQL server bouwen, of frontend-teams die er een gebruiken zonder codegen-tools geïnstalleerd, krijgen getypeerde shapes voor elk object, input en interface in het schema in één keer, zonder een buildstap in te stellen alleen om de types te bekijken.

Scalaire mapping volgt standaard de GraphQL-specificatie: ID en String worden string, Int en Float worden number, Boolean blijft boolean, en elke aangepaste scalaire waarde — DateTime, JSON, Upload — valt terug op een configureerbaar type dat u kiest. Nullbare velden kunnen weergegeven worden als optionele eigenschap (field?: Type) of als expliciete union met null (field: Type | null), en dezelfde vormkeuze geldt voor hele declaraties: kies tussen TypeScript type aliases of interfaces, waarbij implements extends wordt wanneer interfaces geselecteerd zijn. Enums genereren ofwel een string-letterlijke union ofwel een echte TypeScript enum. Een naamvoorvoegsel of -achtervoegsel voorkomt botsingen tussen gegenereerde en handgeschreven namen, opmerkingen en description-blokken uit het schema worden overgedragen als JSDoc, en typen waarvan de naam met een onderstreping begint — GraphQL's eigen introspectietypen — worden standaard overgeslagen.

Veldargumenten en directives worden automatisch verwijderd, omdat TypeScript types vorm beschrijven, niet resolvers: field(id: ID!): User @deprecated wordt een gewoon veld. Geneste lijsttypen zoals [String!]! behouden hun interne en externe nullabiliteit onafhankelijk, zodat een niet-null lijst met nullbare strings en een nullable lijst met niet-null strings anders uitkomen. Declaraties kunnen ook alfabetisch gesorteerd worden in plaats van de originele volgorde van het schema te volgen.

Alles wordt lokaal in uw browser uitgevoerd — het schema dat u plakt, wordt nooit geüpload. Kopieer de gegenereerde types, download ze als .txt-bestand, of stuur de uitvoer direct terug naar de invoer om het schema verder aan te scherpen.

FAQ

Verwerkt het geneste lijst- en niet-null-modificators zoals [String!]!?
Ja. Elk niveau van nullabiliteit — de lijst zelf en zijn elementen — wordt onafhankelijk in kaart gebracht, dus [String!]! wordt string[] terwijl [String] wordt (string | null)[].
Wat gebeurt er met aangepaste scalaire waarden zoals DateTime of JSON?
Ze worden in kaart gebracht met het fallback-type dat is ingesteld in de optie Aangepast scalair type (standaard unknown). Stel het in op string, Date of een ander overeenkomstig type en elk veld dat deze scalaire waarde gebruikt, pikt het op.
Worden veldargumenten en richtlijnen in de uitvoer behouden?
Nee. TypeScript types beschrijven alleen vorm, dus argumenten zoals (limit: Int) en directives zoals @deprecated worden verwijderd; het veld zelf converteert nog steeds normaal.
Kan ik interfaces genereren in plaats van type aliases?
Ja. Schakel Declaratietype over naar Interfaces, en elke implements-clausule op een GraphQL type wordt een extends-clausule op de TypeScript-interface.
Wordt mijn schema ergens geüpload?
Nee. Conversie vindt volledig in uw browser plaats — uw GraphQL schema verlaat uw apparaat nooit.