实现接口的Graphql对象不是从Interface继承解析器

时间:2018-06-14 00:46:31

标签: graphql graphql-js

我正在使用graphql-tools来构建GraphQL Schema,基本上我有这个结构

const typeDefs = `
type Query {
  author(name: String): Author
}
interface Person {
  id: Int 
  name: String
  citizenship: String
type Author implements Person {
  id: Int
  name: String
  citizenship: String
`

我有以下解析器

const resolvers = {
  Query: {
    author(_,args) {
        return Author.find({where: args});
    }
  }
  Person: {
    citizenship() {
      return "Example Citizenship";
    }
  }
}

我使架构可执行

const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
  inheritResolversFromInterfaces: true
});

和可选参数 inheritResolversFromInterfaces:true 它应该允许我根据apollo graphql-tools文档继承从PersonAuthor的公民身份解析器({ {3}})。这样,当查询作者时,将出现“示例公民身份”字符串。

但是没有,查询返回

"author": {
  "id": 1,
  "name": "Peter",
  "citizenship": null
} 

1 个答案:

答案 0 :(得分:0)

已解决,在版本v2.24.0中添加了功能inheritResolversFromInterfaces: true,需要具有该版本才能使用该功能。