Да, при условии, что ваша схема выглядит следующим образом:
type Query {
allPosts: [AllPostTypes!]!
}
interface AllPostTypes {
title: String!
}
Интерфейс определяет одно или несколько полей, которые должны определять типы реализации. Таким образом, тип, реализующий AllPostTypes
, также должен был бы определить поле title
. Если у вас есть поле, которое возвращает AllPostTypes
, мы можем использовать AllPostTypes
в качестве условия on
для запроса любых таких общих полей:
{
allPosts {
... on AllPostTypes {
title
}
}
}
Однако распространение фрагмента здесь не требуется. Поскольку эти поля являются общими для любого объекта, возвращаемого allPosts
, мы можем просто написать:
{
allPosts {
title
}
}
Любые поля, которые указывают c на определенный тип реализации, все равно необходимо добавить с использованием фрагмента. Распространение, хотя:
{
allPosts {
title
... on Post2Type {
someOtherField
}
}
}