#graphql
#graphql
Вопрос:
Есть ли способ указать свойство, значением которого является либо enum
значение, либо Boolean
a? Это не сработало:
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:
Для достижения этой цели вы могли бы использовать типы объединения. Но, как указано в документации:
Обратите внимание, что члены типа объединения должны быть конкретными типами объектов; вы не можете создать тип объединения из интерфейсов или других объединений.
Таким образом, вы не можете использовать enum
или подобные скаляры Boolean
при построении union
типа, но вы могли бы сделать что-то вроде:
enum permission { request, verify, view, modify }
type PassPermission {
permissions: permission
}
type PassFalse {
value: Boolean
}
union Permissions = PassPermission | PassFalse
Таким образом, тип Permissions
может иметь один из 2 типов PassPermission
или PassFalse
.