web-dev-qa-db-fra.com

Comment spécifier un type graphql qui accepte plusieurs types?

Je veux créer un type graphql qui peut retourner soit un Array of Integers ou String.

J'ai déjà essayé d'utiliser union sous la forme union CustomVal = [Int] | String, mais cela renvoie une erreur.

La déclaration de schéma est:

union CustomValues = [Int] | String

type Data {
    name: String
    slug: String
    selected: Boolean
    values: CustomValues
}

L'erreur est:

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

Est-ce possible de faire dans graphql? Sinon, pouvez-vous suggérer une alternative pour ce faire.

Je pose la question car la documentation du syndicat dit que 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.

Toutes les solutions seraient très utiles.

5
Deepank

Suivez ceci https://github.com/facebook/graphql/issues/215 , Graphql ne prend pas en charge les types d'union de mise à l'échelle actuellement, vous pouvez le faire

union IntOrString = IntBox | StringBox

type IntBox {
  value: Int
}

type StringBox {
  value: String
}

ou vous pouvez avoir votre type personnalisé, voyez ceci graphql, union scalar type?

2
Rajat Sharma