GraphQL模式:枚举或错误

时间:2019-03-25 04:22:11

标签: graphql

是否可以指定其值为enumBoolean的属性?这不起作用:

enum PassPermission { request, verify, view, modify }

type Permissions
{
    pass: PassPermission! | Boolean!
}

这也不是:

enum PassPermission { request, verify, view, modify }

union PassPermissionOrFalse = PassPermission | Boolean

type Permissions
{
    pass: PassPermissionOrFalse!
}

但是我想在我的模式中传达pass的值将始终是这四个字符串值之一或false

1 个答案:

答案 0 :(得分:1)

您可以使用Union Types完成此操作。但正如文档中所述:

  

请注意,联合类型的成员必须是具体的对象类型;您不能通过接口或其他联合创建联合类型。

因此,在构建enum类型时,不能使用Boolean或类似union的标量,但是可以执行以下操作:

enum permission { request, verify, view, modify }

type PassPermission {
  permissions: permission
}

type PassFalse {
  value: Boolean
}

union Permissions = PassPermission | PassFalse

通过这种方式,类型Permissions可以具有两种类型PassPermissionPassFalse中的一种。

希望有帮助。