Как сгенерировать определения TypeScript для graphql

У меня есть приложение для реагирования, основанное на создании приложения для реагирования и TypeScript. Я хочу заменить redux клиентом Apollo graphql. Я определяю запросы в файлах .graphql и / или gql-Tag, используя строковые шаблоны. Я хочу, чтобы результат / данные из компонента запроса apollo были строго типизированы, как я могу это сделать? Я сам не пишу интерфейсы и типы, я хочу, чтобы они были сгенерированы ?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
0
1 766
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для этого есть очень хороший инструмент под названием Кодогенератор Apollo, он является частью apollo-cli.

Загляните в их документацию: https://github.com/apollographql/apollo-cli#apollo-codegengenerate-output

Пример создания определений TypeScript:

  • Загрузите схему вашего сервера:

apollo schema:download .schema/graphql.json --endpoint=http://localhost:4000/

  • Сгенерируйте типы для ваших запросов:

apollo codegen:generate --schema=.schema/graphql.json --addTypename --target=typescript --queries=src/**/*.{tsx,ts} --outputFlat=src/queries

На самом деле мне не удалось заставить работать apollo codegen. Документация очень устарела, и я закончил отладку apollo codegen, но в конце концов сдался ... Нашел другую библиотеку: graphql-code-generator, которая наконец-то сработала :-) Я Я использую ApolloClient, и это действительно здорово! Но не мог понять apollo-cli. На самом деле у graphql-code-generator есть шаблон и для Apollo :-)

Thomas 28.10.2018 22:40

Хорошо, это здорово! Я также посмотрю на этот «генератор кода графа» :)

Marco Daniel 29.10.2018 18:19

Другие вопросы по теме