给定一个graphql.js模式,如何找到特定联合类型的所有变体?

问题描述

假设我有一个像这样构建的graphQL模式:

var { buildSchema } = require('graphql');

// Construct a schema,using GraphQL schema language
var schema = buildSchema(`
  type Human = // some object type
  type Droid = // another object type
  union SearchResult = Human | Droid
  type Query {
    result: SearchResult
  }
`);

const searchResultVariants = ?

现在,我正在寻找一种方法,以编程方式在给定的SearchResult的同一程序中找出schema类型的所有变体,有没有办法?谢谢

解决方法

获取相关的抽象类型(接口或联合):

const searchResultType = schema.getType('SearchResult');

然后获取其可能的类型:

const possibleTypes = schema.getPossibleTypes(searchResultType);

possibleTypes将包含GraphQLObjectType个对象的数组。

您还可以使用isPossibleType测试特定类型是否是抽象类型的可能类型。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...