TS zu GraphQL SDL
GraphQL SDL Schema-Generator

TypeScript-Interface zu GraphQL-SDL-Schema-Konverter

Entwickler-Referenz zur Konvertierung von TypeScript-Schnittstellen, Typen und Enums in produktionsreife GraphQL-Schema-Definition-Language-(SDL)-Schemata.

Presets
TypeScript-Interfaces & Typen Eingabe
# No TypeScript interfaces, types, or enums detected in source.
# Paste TypeScript definitions or select a scenario preset above.
Definierte Typen
0 Typen & Inputs
Felder gesamt
0 Felder generiert
Enums & Unions
0.75ms (Reiner Client-AST)

Client-seitiges AST-Parsing

Alle TypeScript-Interfaces, Typ-Aliase und Enums werden lokal im Browserspeicher analysiert, ohne dass Code an externe Server gesendet wird.

Vollständige GraphQL-SDL-Generierung

Konvertiert komplexe TypeScript-Modelle in standardkonforme GraphQL-SDL-Objekttypen, Input-Typen, Enums, Unions und benutzerdefinierte Skalare.

Produktionsreifer Multi-Tab-Export

Exportieren Sie vollständige Schemadefinitionen (.graphql), separate Input-Typen oder Resolver-Signaturen mit Sofortkopie und Download.

Technische Referenz & Architektur-Leitfaden

TypeScript zu GraphQL SDL Cheatsheet — Referenz-Leitfaden

Entwickler-Referenz zur Konvertierung von TypeScript-Schnittstellen, Typen und Enums in produktionsreife GraphQL-Schema-Definition-Language-(SDL)-Schemata.

Wichtige Parameter & Steuerelemente

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

Steuert die Nullable-Semantik von GraphQL-Feldern. 'ts' spiegelt optionale TS-Eigenschaften (? und null) wider; 'strict' erzwingt Nicht-Null (!) außer bei optionalen Feldern; 'nullable' entfernt alle Nicht-Null-Modifikatoren.

Standard: 'ts'
autoMapIdboolean

Wandelt TypeScript-Eigenschaften mit den Namen id, _id oder der Endung Id von string oder number in den nativen GraphQL-Skalar ID um.

Standard: true
smartNumbersboolean

Unterscheidet TypeScript number-Typen anhand von Benennungskonventionen und AST-Kontext heuristisch in GraphQL Int oder Float.

Standard: true
generateInputsboolean

Leitet passende GraphQL input-Objekttypen parallel zu Standardtypen ab, entfernt schreibgeschützte IDs und passt verschachtelte Typen an.

Standard: true
parseDeprecationboolean

Erkennt JSDoc @deprecated-Tags an TypeScript-Eigenschaften und übersetzt diese in GraphQL @deprecated(reason: "...")-Direktiven.

Standard: true

Profi-Tipps & Best Practices

JSDoc-Dokumentation abbilden

Verwenden Sie mehrzeilige JSDoc-Kommentare (`/** ... */`) in Ihren Schnittstellen, damit der Konverter diese als offizielle GraphQL-Beschreibungen mit dreifachen Anführungszeichen vor Feldern ausgibt.

Enums aus TS-Unions erzeugen

Deklarieren Sie String-Literal-Unions (`type Status = 'OPEN' | 'CLOSED'`), um saubere GraphQL-Enums zu erhalten, anstatt Felder fälschlicherweise auf den generischen Skalar String abzubilden.

Eingabetypen sauber trennen

Aktivieren Sie `generateInputs` für Mutationen, um eigenständige `input`-Typen abzuleiten, die auto-inkrementierte Primärschlüssel und Server-Zeitstempel automatisch aus dem Eingabe-Payload entfernen.

Custom Scalars deklarieren

Nutzen Sie `declareScalars`, um bei Erkennung von `Date`-Objekten oder externen Bibliotheksdaten automatisch `scalar DateTime` und verwandte Typen am Schemakopf einzufügen.

Häufige Fallstricke & Fehlerbehebung

Zirkuläre TypeScript-Schnittstellenreferenzen lösen Rekursionswarnungen aus

Entkoppeln Sie bidirektionale Referenzen, indem Sie relationale Felder als optional (Nullable) kennzeichnen oder Union-Typen nutzen, um die SDL-Generierung ohne Stack-Overflow abzuschließen.

TypeScript-Utility-Typen wie Omit<T, K> oder Pick<T, K> werden nicht aufgelöst

Lösen Sie Utility-Typen vor der Konvertierung in explizite Interface-Deklarationen auf oder nutzen Sie `tsc --declaration`, um dem Parser vollständig expandierte Struktur-Knoten bereitzustellen.

Häufig gestellte Fragen (FAQ)

Wird der TypeScript-Code vollständig lokal im Browser geparst und transformiert?▼

Ja. Das Tokenizing und die AST-zu-SDL-Generierung erfolgen vollständig clientseitig im Browser. Zu keinem Zeitpunkt werden Quelltexte oder Datentypen an externe Server übertragen.

Wie verarbeitet der Konverter TypeScript-Vererbung über das Schlüsselwort extends?▼

Da GraphQL-Objekttypen keine direkte Vererbung unterstützen, fasst der Konverter geerbte Felder der übergeordneten Schnittstelle direkt im abgeleiteten GraphQL-Typ zusammen (Flattening).

Kann der Generator separate GraphQL-Input-Typen für Mutationen ableiten?▼

Ja. Bei aktiviertem `generateInputs` werden parallele `input`-Definitionen mit dem Suffix `Input` generiert, wobei serverseitige IDs und rekursive Relationen automatisch bereinigt werden.

Wie werden TypeScript-String-Union-Literale in die GraphQL-Spezifikation übersetzt?▼

Reine String-Literal-Unions (wie `'DRAFT' | 'PUBLISHED' | 'ARCHIVED'`) werden direkt in GraphQL `enum`-Definitionen konvertiert, während Objekt-Unions als GraphQL `union`-Blöcke abgebildet werden.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →