在我的一个使用GraphQL的项目中,我定义了一个具有相同字段的type
和input
。
例如。
type SomeType {
name: String
id: String
}
input SomeInput {
name: String
id: String
}
这似乎是多余的,因为我必须两次定义相同的字段。是否可以定义一组字段并使SomeType
和SomeInput
包含这些字段?这将类似于面向对象编程中的继承,在继承中您将有一些基础,并且理想情况下,每个基础都将从其继承。
例如,它可能看起来像:
SomeBase {
name: String
id: String
}
type SomeType extends SomeBase {}
input SomeInput extends SomeBase {}
这可能吗?如果是这样,您将如何实现?
谢谢。
答案 0 :(得分:0)
我不确定graphql
是否支持继承,但是有接口。在您的示例中:
interface IUser {
name: String!
id: String!
}
type User implements IUser {
name: String
id: String
}
type UserInput implements IUser {
name: String
id: String
}
这肯定不会减少样板,但至少会确保您可以为这些类型维护通用合同。