Я создаю свой stateLink
без такой схемы:
const stateLink = withClientState({
cache,
resolvers,
defaults
})
У меня есть мутация, которая принимает объект в качестве параметра:
MY_MUTATION = gql`mutation myMutation($product: Product) {...}`
Поскольку нет typeDefs
(нет типа объекта Product
) и в любом случае нет проверки типа, как я могу указать, что аргумент $product
является объектом, а не скалярным типом?
Нет, вы не поняли. То, что здесь gql(...)
, - это не JS, а язык запросов GraphQL. Я получил свой ответ. С apollo-link-state проверка типов отсутствует. Таким образом, вы можете поместить туда все, что хотите, Product
, Int
или что-то еще, если аргумент хорошо работает с кодом вашего преобразователя.
Я все понял :) Я использую клиент и сервер apollo с машинописным текстом и использую генератор кода graphql для генерации типов машинописных текстов из моей схемы и запросов. Таким образом, я проверяю тип во время компиляции
Хорошо, это полезно знать.
Я не уверен, что смогу понять, чего именно вы пытаетесь достичь. Кому / чему вы хотите указать тип? Если вы ожидаете проверки типов, вам следует использовать инструмент проверки типов, такой как поток, машинописный текст или даже другой язык, кроме JS, потому что JS не типизирован.