web-dev-qa-db-ja.com

複数のタイプを取るgraphqlタイプを指定するにはどうすればよいですか?

Array of IntegersまたはStringを返すことができるgraphql型を作成したいと思います。

ユニオンを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で行うことは可能ですか?そうでない場合は、これを行うための代替案を提案できますか?.

ユニオンのドキュメントにNote that members of a union type need to be concrete object types; you can't create a union type out of interfaces or other unions.とあるので、これを尋ねます

どんな解決策も非常に役に立ちます。

5
Deepank

これに従います https://github.com/facebook/graphql/issues/215 、Graphqlは現在スケーラーユニオンタイプをサポートしていません。これを行うことができます

union IntOrString = IntBox | StringBox

type IntBox {
  value: Int
}

type StringBox {
  value: String
}

または、カスタムタイプを使用できます。これを参照してください graphql、union scalar type?

2
Rajat Sharma