首页 > 解决方案 > 如何使用 Apollo 工具为查询生成 Typescript 类型,包括 Apollo @client 和 @rest 指令?

问题描述

我有一个客户端模式src/schema.graphql和一些查询src/graphql/queries.ts

目前,我的所有查询都包括来自 apollo-link-rest 的 @rest 指令,我正在尝试使用apollo client:codegen以下命令为它们生成 Typescript 类型:

apollo client:codegen ./src/__generated__/types.ts --outputFlat --includes=./src/**/queries.ts --addTypename --localSchemaFile=./src/schema.graphql --target=typescript

这总是导致

.../src/graphql/queries.ts: Unknown directive "rest".
ToolError: Validation of GraphQL query document failed

我不明白我做错了什么。根据此处的文档, Apollo 应该支持开箱即用的客户端指令@client@rest

@rest有没有人成功地为带有或@client指令的查询生成类型?

标签: typescriptgraphqlapolloapollo-client

解决方案


嗯,稍后有一堆文档页面,如果我src/schema.graphql按如下方式声明指令,它似乎可以工作:

directive @rest(
    type: String!
    path: String!
    method: String
) on FIELD

注意:此声明不包括所有可能的参数。请参阅文档以获取完整的参数列表

任何人都可以确认这是这样做的正确方法吗?


推荐阅读