npm包 typed-graphql 使用教程

阅读时长 4 分钟读完

简介

typed-graphql 是一个用于 Typescript 和 Javascript 的 GraphQL 类型生成器,它允许您从 GraphQL schema 中生成类型,避免手动进行类型转换。

在使用 typed-graphql 时,您可以通过定义 schema 和选择要生成的类型的方式,自动生成类型定义和 TypeScript/JavaScript 代码。

使用 typed-graphql 的好处是,有严格的类型定义可以避免在 GraphQL 查询时出现类型错误,节省了时间和精力。

安装

在终端输入以下命令,即可安装 typed-graphql

开始使用

生成类型定义

在使用 typed-graphql 之前,我们需要先定义我们的 GraphQL schema。

下面是一个简单的 GraphQL schema 示例:

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

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

接下来,我们需要在 Typescript 中定义与该 schema 对应的类型。使用 typed-graphql,您可通过以下方式轻松生成类型定义。

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

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

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

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

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

通过上述代码,我们会得到以下类型定义代码:

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

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

使用生成的类型

当我们已经定义了我们的 GraphQL schema 并且使用 typed-graphql 生成了相应的 TypeScript 类型后,我们就可以在项目中使用该类型进行开发。

例如,我们可以使用生成的 Profile 类型来约束我们的查询结果:

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

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

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

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

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

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

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

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

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

结论

使用 typed-graphql 可以轻松地从 GraphQL schema 中生成严格的 TypeScript 类型定义,避免手动转换类型所带来的不确定性和时间成本。通过使用这个 npm 包,我们可以在编写项目时享受到类型检查的便利,在遇到类型错误时及时发现和解决问题。

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