如何指定采用多种类型的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

我想创建一个graphql类型,它可以返回一个
整数数组
字符串

我已经试过在表单中使用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只能包含对象类型,不能包含字符串。
如果需要列表(数组),需要使用
[]
,但是,如果您想在不同的输入上返回不同的类型,那么您必须在解析器函数中定义如何执行该操作。