在GraphQL中为类型和输入使用相同的字段

在GraphQL中为类型和输入使用相同的字段,graphql,Graphql,在我的一个使用GraphQL的项目中,我使用相同的字段定义了类型和输入 前 这似乎是多余的,因为我必须定义相同的字段两次。是否可以定义一组字段,并使SomeType和SomeInput都包含这些字段?这将类似于面向对象编程中的继承,在面向对象编程中,您将有一些基础,理想情况下,每个基础都将从中继承 例如,它可能看起来像: SomeBase { name: String id: String } type SomeType extends SomeBase {} input S

在我的一个使用GraphQL的项目中,我使用相同的字段定义了
类型
输入

这似乎是多余的,因为我必须定义相同的字段两次。是否可以定义一组字段,并使
SomeType
SomeInput
都包含这些字段?这将类似于面向对象编程中的继承,在面向对象编程中,您将有一些基础,理想情况下,每个基础都将从中继承

例如,它可能看起来像:

SomeBase {
    name: String
    id: String
}

type SomeType extends SomeBase {}

input SomeInput extends SomeBase {}
这可能吗?如果是,你将如何实现


提前感谢。

我不确定
graphql
是否支持继承,但是有接口。在您的示例中:

interface IUser {
  name: String!
  id: String!
} 

type User implements IUser {
  name: String
  id: String
}

type UserInput implements IUser {
  name: String
  id: String
}

这当然不会减少样板文件,但至少可以确保您可以为这些类型维护一个通用合同。

啊,谢谢您的建议,但目标是减少样板文件。不幸的是,接口并不是答案。
interface IUser {
  name: String!
  id: String!
} 

type User implements IUser {
  name: String
  id: String
}

type UserInput implements IUser {
  name: String
  id: String
}