#typescript #apollo-client #graphql-js #react-query #prisma-graphql
Вопрос:
У меня есть объединение type Media = Image | Emoji
, и я использую его для многих различных и глубоко вложенных объектов в моей схеме graphql. Я также использую генератор кода graphql для генерации типов. Я использовал apollo-клиент для обработки своих запросов, и он обрабатывал типы союзов, как заклинание в кэше.
const cache = new InMemoryCache({
possibleTypes: {
Media: ['Image', 'Emoji'],
...
Но по какой-то причине мне пришлось перейти на react-запрос и graphql-запрос, и теперь каждый раз, когда я хочу использовать object.logo: Media
, например, и этот логотип может иметь разные типы, но typescript выдает эту ошибку:
Property 'url' does not exist on type 'Media'.
Property 'url' does not exist on type 'Emoji'.
Я не хочу каждый раз проверять тип и приводить его, поэтому мне интересно, как я могу реализовать это глобально, как это сделал apollo-клиент?