我需要返回一个字符串或一个布尔值???任何想法?
login: {
type: GraphQLString || GraphQLBoolean, // <------ but it only take one type
description: 'Desc',
resolve: (root, args) => {
// Need to return a string or a boolean
}
答案 0 :(得分:1)
您可以查看自定义类型:http://graphql.org/graphql-js/type/#example-1。这允许您根据API用例创建自定义类型。我会这样做,这就像一个&#34;代码气味&#34;可能需要设计并进一步审查。
var StringOrBool = new GraphQLScalarType({
name: 'StringOrBool',
serialize: parseStringOrBool,
parseValue: parseStringOrBool,
parseLiteral(ast) => parseStringOrBool(ast.value)
});
function parseStringOrBool(value) {
return (typeof value === 'string' || typeof value === 'boolean') ?
value :
null;
}
您必须检查这一点是否正确,但应该有效
答案 1 :(得分:0)
您可以使用联盟:
http://graphql.org/graphql-js/type/#graphqluniontype
但正如griffith_joel所建议的那样 - 仔细观察你试图通过超载那一个领域而做的事情,并考虑它是否会更好地作为两个不同的领域。不知道你的意图,但也许是非空的&#34;成功&#34;字段和可选的&#34;用户名&#34;字段。