Как мне указать тип graphql, который принимает несколько типов? - PullRequest
0 голосов
/ 12 июня 2018

Я хочу создать тип graphql, который может возвращать либо Array of Integers, либо String.

. Я уже пытался использовать 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?Если нет, не могли бы вы предложить альтернативу для этого.

Я спрашиваю об этом, поскольку в документации профсоюза говорится, что 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.

Любые решения будут очень полезны.

1 Ответ

0 голосов
/ 12 июня 2018

Следуйте этому https://github.com/facebook/graphql/issues/215, Graphql в настоящее время не поддерживает типы объединения скейлеров, вы можете сделать это

union IntOrString = IntBox | StringBox

type IntBox {
  value: Int
}

type StringBox {
  value: String
}

или вы можете иметь свой собственный тип, см. Этот graphql, скаляр объединениятипа

...