У меня проблема с моим проектом, и я не могу найти никакого решения в Интернете. Здесь ситуация.
- У меня есть Союз (
DataResult
) 2 типов (Teaser
иProgram
) - У меня есть тип
Zone
с полемdata
(массивDataResult
) Teaser
&Program
имеют одно и то же полеtitle
с другим типом (String
иString!
)
Вот части схем Zone
, Teaser
и Program
:
type Program {
title: String
}
type Teaser {
title: String!
}
union DataResult = Teaser | Program
type Zone {
(...)
data: [DataResult!]
}
Когда я попытался запросить данные зоны, как описано в приведенной ниже части запроса, у меня возникла ошибка в GraphQL.
zones {
...zoneFieldsWithoutData
data {
... on Program {
...programFields
}
... on Teaser {
...teaserFields
}
}
}
Вот ошибка:
Error: GraphQL error: Fields \"title\" conflict because they return conflicting types String and String!. Use different aliases on the fields to fetch both if this was intentional
Я не могу использовать псевдоним, потому что спецификациям нужно одинаковое имя атрибута для всех объектов "DataResult". Что я могу сделать?
Более того, даже если я установлю тот же тип для title
, я получу много предупреждений о "пропущенных полях" в консоли....
PS: я использую Vanilla Apollo в качестве клиента GraphQL (на стороне сервера)