跟许多类型系统一样,GraphQL 支持接口。一个接口是一个抽象类型,它包含某些字段,而对象类型必须包含这些字段,才能算实现了这个接口。
例如,你可以用一个 接口用以表示《星球大战》三部曲中的任何角色:
例如,这里有一些可能实现了 Character
的类型:
可见这两个类型都具备 Character
接口的所有字段,但也引入了其他的字段 、starships
和 primaryFunction
,这都属于特定的类型的角色。
注意下面例子的查询会产生错误:
hero
字段返回 类型,取决于 episode
参数,它可能是 Human
或者 Droid
类型。上面的查询中,你只能查询 接口中存在的字段,而其中并不包含 primaryFunction
。
你可以在查询指南的 章节了解更多相关信息。