如何指定采用多种类型的graphql类型?
我想创建一个graphql类型,它可以返回一个如何指定采用多种类型的graphql类型?,graphql,graphql-js,Graphql,Graphql Js,我想创建一个graphql类型,它可以返回一个整数数组或字符串 我已经试过在表单中使用union union CustomVal=[Int]| String,但这将返回一个错误 架构声明是: union CustomValues = [Int] | String type Data { name: String slug: String selected: Boolean values: CustomValues } 错误是: node_modules/gra
整数数组
或字符串
我已经试过在表单中使用union
union CustomVal=[Int]| String
,但这将返回一个错误
架构声明是:
union CustomValues = [Int] | String
type Data {
name: String
slug: String
selected: Boolean
values: CustomValues
}
错误是:
node_modules/graphql/error/syntaxError.js:24
return new _GraphQLError.GraphQLError('Syntax Error: ' + description, undefined, source, [position]);
Syntax Error: Expected Name, found [
GraphQL request (81:23)
80:
81: union CustomValues = [Int] | String
这可以在graphql中实现吗?如果没有,请您建议一种替代方法
我这样问是因为union文档说,注意union类型的成员需要是具体的对象类型;不能使用接口或其他联合创建联合类型。
任何解决方案都会非常有用。遵循这一点,Graphql目前不支持scaler联合类型,您可以这样做
union IntOrString = IntBox | StringBox
type IntBox {
value: Int
}
type StringBox {
value: String
}
或者您可以使用自定义类型,请参见此您可以尝试从
[Int]
中删除[]
吗?仍然会引发错误,我希望该类型采用整数的数组
或字符串
,并且不是使用[]
在graphql中声明的数组类型吗?错误是联合类型CustomValue只能包含对象类型,不能包含Int。联合类型CustomValue只能包含对象类型,不能包含字符串。
如果需要列表(数组),需要使用[]
,但是,如果您想在不同的输入上返回不同的类型,那么您必须在解析器函数中定义如何执行该操作。