npm 包 graphql-typescript-definitions 使用教程

阅读时长 7 分钟读完

GraphQL 是一种优秀的查询语言,在前端开发中受到了广泛的应用。使用 TypeScript 可以让代码更加的规范和易于维护。在这篇文章中,我们将介绍如何使用 npm 包 graphql-typescript-definitions 来将 GraphQL 的 Schema 转化为 TypeScript 声明,并最终生成一个 TypeScript 定义文件。

准备工作

在使用 graphql-typescript-definitions 的时候,需要先安装相应的软件和工具:

  1. TypeScript:使用 npm 包管理器来安装,命令为:

  2. GraphQL:使用 npm 包管理来安装,命令为:

  3. graphql-typescript-definitions:使用 npm 包管理来安装,命令为:

使用 graphql-typescript-definitions

安装完成后,在项目根目录下创建一个名为 types 的文件夹,用来存放生成的 TypeScript 定义文件。然后,在 package.json 中添加以下命令:

其中,

  • <schema.json>:指定 GraphQL 的 Schema 文件路径,可以是远程的 URL 地址,也可以是本地的文件路径。本文以本地路径为例,即项目根目录下的 schema.json;
  • <output.ts>:指定 TypeScript 定义文件的输出路径和文件名,如 ./types/schema.ts;
  • --deriveFieldTypeName:指定是否自动从字段名中推断类型,如果启用,会将类名、字段名和类型名通过 _ 隔开;
  • --enumPrefix:指定是否要在所有枚举类型的名称前面追加一个前缀,如 E

接下来,我们运行该命令即可生成 TypeScript 定义文件:

在运行命令之后,我们在 types 文件夹下成功生成了一个 schema.ts 的文件,文件内容如下:

-- -------------------- ---- -------
------ ---- ----- - -
  ------------ --------
  ------- -------------------
  ------- -------------------------
--

------ ---- ---- - -
  ------------ -------
  ---- ---------------------
  ------- -------------------------
  -------- -------------------------
--

------ ---- ----------------- -
  ------ - ---------
  ------- - ---------
-

------ ---- ------- ------- ------ -------- --------- - --- -- ----- --- ------

------ ---- ------- - -
  --- -------
  ------- -------
  -------- --------
  ---- -------
  ------ -------
--

------ ---- -------- - - - -----

------ ---- -------- - -
  ------------ -----------
  --------- ------------
--

------ ---- ------------------------ - -------
  ------ ------------------
  ------- ------------------
---

------ ---- --------------- - -
  ------------ -----------
  --------- -------
    ------------ -------
    ---- --------------
    ------- --------------
    -------- --------------
  ---
--

可以看到,该文件定义了 Query、Book、Mutation 等 TypeScript 类型,还定义了相应类型的变量和方法,方便我们在 TypeScript 中使用。

示例代码

为了更好地理解上述内容,我们可以通过一个简单的 GraphQL 示例来进行实践。

首先,我们需要定义一个 GraphQL 的 Schema,在项目根目录下创建一个文件名为 schema.graphql 的文件,输入以下内容:

-- -------------------- ---- -------
---- ----- -
  ------ -------
  ------ ------
-

---- ---- -
  --- --
  ------ ------
  ------- ------
-

---- -------- -
  -------------- -------- ------- --------- ----
-

------ -
  ------ -----
  --------- --------
-

然后,在命令行中运行以下命令,将该 Schema 转化为 JSON 格式:

接着,我们在项目中安装必要的 npm 包并生成 TypeScript 定义文件:

最后,我们可以在 TypeScript 中使用该文件中定义的类型和方法。在项目中创建一个 app.ts 文件,在其中引入生成的 TypeScript 类型:

-- -------------------- ---- -------
------ - ------------- ------------- - ---- -----------------
------ - ---------------- ------------------------ - ---- -----------------

----- ------ - --- --------------
  ---- --------------------------------
  ------ --- ---------------
---

----- ----------------- - -
  -------- --------------- -------- -------- -------- -
    -------------- ------- ------- -------- -
      --
      -----
      ------
    -
  -
--

----- ---------- ------------------------ - -
  ------ -------- -----
  ------- ----- ----
--

--------------------------------
  --------- ------------------
  ---------
-------------- -- ---------------------

如果一切正常,我们可以在命令行中运行以下命令启动应用:

在浏览器中访问 http://localhost:8080 网址,则可以看到向服务器添加新书的消息。

总结

本篇文章介绍了如何使用 npm 包 graphql-typescript-definitions 将 GraphQL 的 Schema 转化为 TypeScript 声明,并最终生成一个 TypeScript 定义文件。在使用该工具的过程中,需要准备好必要的软件和工具,并按照传递相应的参数运行命令即可。通过一个示例代码,我们可以更好地理解如何在 TypeScript 中使用该文件中定义的类型和方法。GraphQL 和 TypeScript 的组合可以让代码更加规范和易于维护,开发者们应该引起足够重视。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f3cd9aedbf7be33b25670d3

纠错
反馈