【问题标题】:Can I use typescript definitions in graphql queries?我可以在 graphql 查询中使用打字稿定义吗?
【发布时间】:2021-02-07 09:43:55
【问题描述】:

现在我正在这样做:

import { comment } from "forms";

const QUERY_COMMENTS = gql`
  query QUERY_COMMENTS($projectId:Int! $orderBy:CommentOrderByInput) {
    comments(projectId:$projectId orderBy:$orderBy) {
      ${comment}
    }
  }
`;

export const comment = `
    id
    text
    date
    postedBy {
        id
        name
    }
`;

interface comment {
     id:number,
     text:string,
     date:string,
     postedBy: {
       id:number,
       name:string,
     },
   }

我基本上是在重复自己。
IMO 在 graphql 查询中使用打字稿定义应该是可能的并且非常有用。
然而我没有找到办法。

【问题讨论】:

  • Typescript 定义在您将代码转换为 JS 时会被删除,所以不,您不能在运行时以任何方式使用它们
  • 或许type-graphql值得一看。

标签: typescript graphql apollo


【解决方案1】:

你可以使用graphql-zeus

这个库从 api 生成打字稿定义,并为您提供一些用于查询和突变的方法。 方法使用我提到的定义,所以你是typesafe

【讨论】:

    【解决方案2】:

    从您问题上的标签来看,您似乎正在使用 Apollo 生态系统。所以我会调查他们的代码生成支持:https://github.com/apollographql/apollo-tooling#code-generation

    【讨论】:

      猜你喜欢
      • 2014-07-31
      • 2019-11-18
      • 2021-10-10
      • 2021-10-31
      • 1970-01-01
      • 2014-12-05
      • 2022-08-11
      • 2021-04-20
      • 2023-01-04
      相关资源
      最近更新 更多