簡體   English   中英

GraphQL返回兩個可選類型

[英]GraphQL return two optional types

我需要返回一個字符串或布爾值??? 有任何想法嗎?

login: {
    type: GraphQLString || GraphQLBoolean, //   <------ but it only take one type
    description: 'Desc',
    resolve: (root, args) => {
      // Need to return a string or a boolean
      }

您可以查看自定義類型: http : //graphql.org/graphql-js/type/#example-1 這使您可以根據您的API用例創建自定義類型。 我會說,這樣做就像是“代碼氣味”,可能需要進一步設計和審查某些內容。

var StringOrBool = new GraphQLScalarType({
  name: 'StringOrBool',
  serialize: parseStringOrBool,
  parseValue: parseStringOrBool,
  parseLiteral(ast) => parseStringOrBool(ast.value)
});

function parseStringOrBool(value) {
  return (typeof value === 'string' || typeof value === 'boolean') ?
    value :
    null;
}

您必須檢查它的正確性,但應該可以

您可以為此使用聯合:

http://graphql.org/graphql-js/type/#graphqluniontype

但是,正如griffith_joel所建議的那樣-通過重載該字段,仔細查看您要執行的操作,並考慮將其作為兩個不同的字段是否更好。 不知道您的意圖,但可能不是一個空的“成功”字段和一個可選的“用戶名”字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM