Union Types
定义 Union Type
Union 是一种简单枚举其他 Object Types 的抽象类型。Union Type 的值实际上是包含的 Object Types 之一的值。
在 graphql-php 中,Union 类型是一个GraphQL\Type\Definition\UnionType
(或其中一个子类)的实例,它接受构造函数中的配置数组:
<?php
use GraphQL\Type\Definition\UnionType;
$searchResultType = new UnionType([
'name' => 'SearchResult',
'types' => [
MyTypes::story(),
MyTypes::user()
],
'resolveType' => function($value) {
if ($value->type === 'story') {
return MyTypes::story();
} else {
return MyTypes::user();
}
}
]);
本示例对 Union 定义使用 内联 样式,但你也可以使用 继承或类型语言。
配置选项
联合类型的构造函数接受一个数组。以下是允许的选项的完整列表:
选项 | 类型 | 说明 |
---|---|---|
name | string |
必需。 Schema 中该接口类型的唯一名称 |
types | array |
必需。 本联合中包含的对象类型列表。请注意,你不能从接口或其他联合中创建联合类型。 |
description | string |
用于客户端的此类型的明文描述(例如,GraphiQL 用于自动生成的文档) |
resolveType | callback |
function($value, $context, ResolveInfo $info) 从父字段的解析器接收 $value,并返回 $value 具体对象类型。 |
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。