【发布时间】:2020-04-18 13:11:09
【问题描述】:
这是我的代码
架构
gql`
type Query {
user: X!
}
type User {
name: String!
}
type Time {
age: Int!
}
union X = User | Time
`;
解析器
{
X: {
__resolveType: obj => {
if (obj.name) return { name: "Amasia" };
if (obj.age) return { age: 70 };
return null;
}
},
Query: {
user: () => {
return {
name: "Amasia"
};
}
}
}
请求
query {
user{
... on User {
name
}
... on Time {
age
}
}
}
当我提出请求时,我会得到错误
“抽象类型 X 必须在运行时为字段 Query.user 解析为对象类型,其值为 { name: \"Amasia\" }, received \"{ name: \"Amasia\" }\"。无论是 X type 应该提供一个 \"resolveType\" 函数,或者每个可能的类型都应该提供一个 \"isTypeOf\" 函数。"
是什么原因?
【问题讨论】:
标签: node.js graphql-js apollo-server