TSからGraphQL SDL変換
GraphQL SDLスキーマジェネレーター

TypeScript インターフェースから GraphQL SDL スキーマへの変換ツール

TypeScriptのインターフェース、型エイリアス、列挙型を本番環境向けGraphQLスキーマ定義言語(SDL)へ変換するための開発者リファレンス。

プリセット
TypeScript インターフェース / 型定義の入力
# No TypeScript interfaces, types, or enums detected in source.
# Paste TypeScript definitions or select a scenario preset above.
検出された型
0 型&Input
総フィールド数
0 フィールド生成済み
Enum & Union
1.41ms (純粋クライアントAST)

ブラウザ内AST高速解析

すべてのTypeScriptインターフェース、型エイリアス、列挙型はブラウザのメモリ内でのみ解析され、外部サーバーへのコード送信は一切ありません。

完全なGraphQL SDLスキーマ生成

複雑なTypeScriptの型定義を、標準的なGraphQL SDLのオブジェクト型、Input型、Enum、Union、カスタムスカラーへ自動変換します。

本番仕様&マルチタブ出力

完全なスキーマ定義(.graphql)、分離されたInput型、リゾルバーシグネチャをワンクリックでコピーまたはダウンロードできます。

技術リファレンス&アーキテクチャガイド

TypeScript to GraphQL SDL — リファレンスガイド

TypeScriptのインターフェース、型エイリアス、列挙型を本番環境向けGraphQLスキーマ定義言語(SDL)へ変換するための開発者リファレンス。

主要パラメータ&設定項目

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

フィールドのNull許容性を制御します。'ts'はTSのオプショナル記法(?やnull)を直接反映、'strict'は明示的なオプショナル以外を非Null(!)に強制、'nullable'は全フィールドをNull許容にします。

初期値: 'ts'
autoMapIdboolean

id、_id、または末尾がIdのTypeScriptプロパティを、stringやnumberからGraphQL標準のIDスカラー型へ自動変換します。

初期値: true
smartNumbersboolean

プロパティの命名規則やASTコンテキストから、TypeScriptのnumber型をGraphQLのInt型またはFloat型へ自動判別してマッピングします。

初期値: true
generateInputsboolean

標準のオブジェクト型に対応するGraphQL input型を同時に生成し、読み取り専用のIDを除外してネストされた型も入力用に変換します。

初期値: true
parseDeprecationboolean

TypeScriptプロパティに付与されたJSDocの@deprecatedタグを検出し、GraphQLの@deprecated(reason: "...")ディレクティブへ変換します。

初期値: true

プロの活用テクニック&推奨設定

JSDocコメントの維持

TypeScriptインターフェースに複数行のJSDocコメント(`/** ... */`)を付与すると、ジェネレーターが自動的にGraphQL標準のトリプルクォート説明文として各フィールドの直前に出力します。

文字列ユニオンのEnum化

文字列リテラルのユニオン型(`type Status = 'OPEN' | 'CLOSED'`)を定義することで、汎用的なString型ではなく正規のGraphQL Enum定義へダイレクトに変換できます。

Input型の個別生成分離

ミューテーションを構築する際は`generateInputs`を有効化し、サーバー自動生成IDやタイムスタンプをペイロードから除外した入力専用の`input`オブジェクトを自動生成します。

カスタムスカラー自動宣言

`declareScalars`を有効にしておくと、TypeScriptの`Date`型や外部ライブラリ型を検知した際に、スキーマ先頭へ`scalar DateTime`などのスカラー宣言を漏れなく補完します。

よくあるトラブルと解決策

循環参照を持つTypeScriptインターフェースで再帰深度警告が発生する

双方向の関連プロパティをオプショナル(Nullable)にするか、ユニオン型で参照を分離してください。ジェネレーターが循環を断ち切り、スタックオーバーフローなしにSDLを出力できます。

Omit<T, K>やPick<T, K>などのユーティリティ型が展開されずフィールドが空になる

ユーティリティ型を明示的なinterface宣言に展開して貼り付けるか、事前コンパイル(`tsc --declaration`)を実行して解決済みの型定義ASTを入力してください。

よくある質問 (FAQ)

TypeScriptのコード解析や変換処理はブラウザローカル環境内で完結しますか?▼

はい。すべてのトークナイズおよびASTからGraphQL SDLへの変換はブラウザ上のJavaScriptエンジン内で完結します。ソースコードやスキーマ情報が外部サーバーへ送信されることはありません。

extendsによるTypeScriptインターフェースの継承関係はどのように変換されますか?▼

GraphQLのオブジェクト型はクラスのような直接継承をサポートしないため、継承元の親インターフェースのフィールドを派生GraphQL型へインライン展開(フラット化)して完全性を維持します。

クエリ用のオブジェクト型とは別にGraphQLのinput型を生成することは可能ですか?▼

はい。`generateInputs`を有効にすることで、末尾に`Input`が付与された入力用スキーマが同時生成されます。自動採番IDや不要な再帰リレーションは自動的に除外されます。

TypeScriptの文字列リテラルユニオンはGraphQL仕様にどう変換されますか?▼

`'DRAFT' | 'PUBLISHED' | 'ARCHIVED'`のような純粋な文字列リテラルユニオンは標準のGraphQL `enum`ブロックに変換され、オブジェクト型の複合ユニオンはGraphQLの`union`定義として出力されます。

関連するおすすめ開発ツール

すべてのツール →
TypeScript インターフェースから Protocol Buffers proto3 への変換ツール開発ツール

TypeScriptのinterfaceやtype定義を、インクリメンタルなタグ番号を持つProtobuf 3構文のmessage、field、enumに変換します。

ツールを開く→
GitLab CI パイプライン生成リファレンス開発ツール

Node.js、Python、Go、Rust、Kaniko コンテナワークフローに対応した本番仕様の .gitlab-ci.yml パイプライン構築と最適化のための技術リファレンス。

ツールを開く→
Linux Supervisord (supervisord.conf) プログラム設定ジェネレーター開発ツール

自動再起動、プロセス並行数、ログ出力リダイレクト、環境変数、非特権ユーザー設定を含むSupervisordプログラム設定ブロックをブラウザ上で即座に生成します。

ツールを開く→
HAProxy ロードバランサー設定ジェネレーター開発ツール

HAProxyロードバランサー向けの本番環境対応設定ファイル生成および構文バリデーションツール。

ツールを開く→
Kubernetes Helm Chart (Chart.yaml & values.yaml) 生成ツール開発ツール

標準的なKubernetes Helm v3のChart.yaml、values.yaml、およびService、Ingress、リソース制限を備えたデプロイメントテンプレートを生成します。

ツールを開く→
マルチステージ Dockerfile ジェネレーター (Node, Go, Python, Rust)開発ツール

Node.js、Golang、Python、Rust、Java向けの高セキュアで軽量なマルチステージ Dockerfile を生成。非rootユーザー設計とBuildKitキャッシュ最適化を完全網羅。

ツールを開く→