【发布时间】:2018-01-11 12:32:24
【问题描述】:
我正在定义以下 GraphQL 类型:
interface.js
import {
GraphQLInterfaceType,
GraphQLNonNull,
GraphQLID
} from 'graphql';
const NodeInterface = new GraphQLInterfaceType({
name: 'Node',
fields: {
id: {
type: new GraphQLNonNull(GraphQLID)
}
}
});
export default NodeInterface;
type.js
import {
GraphQLObjectType,
GraphQLInputObjectType,
GraphQLNonNull,
GraphQLID,
GraphQLList,
GraphQLString,
GraphQLInt,
GraphQLBoolean
} from 'graphql';
import NodeInterface from '../interfaces';
import UserModel from '../../models/User';
const fields = {
id: {
type: new GraphQLNonNull(GraphQLID)
},
name: {
type: GraphQLString
},
users: {
type: new GraphQLList(UserType),
resolve(company) {
const { _id } = company;
return UserModel.find({ companyId: _id }).exec();
}
}
};
export const CompanyType = new GraphQLObjectType({
name: 'Company',
description: 'Company',
interfaces: [NodeInterface],
isTypeOf: value => value instanceof CompanyType, <<<< ERROR HERE
fields: fields
})
在节点上运行查询时出现以下错误:
query {
node(id:"598360ab8713621aac426e88") {
... on Company {
id
name
}
}
}
结果:
{
"errors": [
{
"message": "Right-hand side of 'instanceof' is not callable",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"node"
]
}
],
"data": {
"node": null
}
}
问题出在Company 类型的isTypeOf,但我不知道为什么它无法评估创建类型的实例。
【问题讨论】:
标签: javascript graphql instanceof graphql-js