如何为 graphql 生成 TypeScript 定义

How to generate TypeScript definitions for graphql

我有一个基于 create react app 和 TypeScript 的 React 应用程序。我想用 Apollo graphql 客户端替换 redux。我使用字符串模板在 .graphql 文件 and/or gql-Tag 中定义查询。我希望 apollo 的查询组件中的 result/data 是强类型的,我该怎么做?无需自己编写接口和类型,我希望生成它们

有一个非常好的工具,叫做 Apollo codegen,它是 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