首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从graphql-codegen获取类似于阿波罗编码元的类型

从graphql-codegen获取类似于阿波罗编码元的类型
EN

Stack Overflow用户
提问于 2020-09-02 06:32:28
回答 1查看 747关注 0票数 0

我是阿波罗和图形库的新手。我尝试同时使用阿波罗码原graphql-码元,我希望在一个文件中生成所有类型,比如graphql,但是在阿波罗中它会创建多个文件。

我在使用graphql时遇到的问题是生成的类型不是我获得数据的格式。

在使用阿波罗客户端useQuery时,我从后端获得的数据格式为

代码语言:javascript
复制
data: {
  queryName : {... actualDataObject }

}

因此,阿波罗-codegen的示例查询的输出是:-

代码语言:javascript
复制
export interface Login_logIn {
  __typename: "UserPayload";
  email: string;
  firstname: string;
  lastname: string;
}

export interface Login {
  logIn: Login_logIn;  // logIn is the queryname here
}

但是,使用graphql-编码,我得到的输出是:-

代码语言:javascript
复制
export type UserPayload = {
  __typename?: 'UserPayload';
  _id: Scalars['ID'];
  email: Scalars['String'];
  firstname: Scalars['String'];
  lastname: Scalars['String'];
};

是否有可能使graphql-codegen输出类似于阿波罗可待因I,即格式为:-

代码语言:javascript
复制
export type UserPayload {
  logIn : {                     //logIn is the queryname
    __typename?: 'UserPayload';
    _id: Scalars['ID'];
    email: Scalars['String'];
    firstname: Scalars['String'];
    lastname: Scalars['String'];
 }
}

这样就很容易在useQuery或useMutation钩子中使用?使用graphql-码元

代码语言:javascript
复制
 const [doLogin, {loading, error, data}] = useMutation<UserPayload, UserInputVariables>(
    LOGIN,
    {
      variables: {
        ...variables,
      }
    },
  );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-02 12:00:10

您需要将typescript-operations插件添加到codegen.yml中。

代码语言:javascript
复制
generates:
  types.ts:
    plugins:
      - typescript
      - typescript-operations

并确保已将documents属性设置为指向查询所在的位置。

这将为每个操作生成两个额外的类型--一个用于查询响应,另一个用于变量--然后这两个类型都可以传递给您的钩子。

代码语言:javascript
复制
export type LoginMutationVariables = Exact<{ ... }>;


export type LoginMutation = (
  { __typename?: 'Mutation' }
  & { logIn: ... }
);

您可以看到有关插件这里的其他详细信息。如果您正在使用阿波罗,您可能会考虑使用码元只是为您生成钩子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63699924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档