На главную
Конвертеры и генераторы кода
Схема GraphQL в TypeScript
SDL превращается в интерфейсы и типы: обязательное поле остаётся строгим, необязательное получает | null, а для полей Query и Mutation собираются типы аргументов и результата.
TypeScript
/** Пользовательский скаляр GraphQL. */
export type DateTime = string;
export type Role = 'ADMIN' | 'EDITOR' | 'VIEWER';
export type SearchResult = User | Post;
export interface Node {
id: string;
}
export interface User extends Node {
id: string;
name: string;
email: string | null;
role: Role;
posts: Post[];
createdAt: DateTime | null;
}
export interface Post extends Node {
id: string;
title: string;
author: User;
}
export interface NewUser {
name: string;
email?: string | null;
role?: Role | null;
}
export interface Query {
user: User | null;
search: SearchResult[];
}
export interface Mutation {
createUser: User;
}
export interface QueryUserArgs {
id: string;
}
export type QueryUserResult = User | null;
export interface QuerySearchArgs {
query: string;
limit?: number | null;
}
export type QuerySearchResult = SearchResult[];
export interface MutationCreateUserArgs {
input: NewUser;
}
export type MutationCreateUserResult = User;
Типов: 4 · входных: 1 · интерфейсов: 1 · перечислений: 1 · объединений: 1 · операций: 3