npm包 typed-graphql 使用教程

简介

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


猜你喜欢

  • npm 包 @types/i18n 使用教程

    在前端开发中,i18n(国际化)是一个必不可少的功能。而在 TypeScript 中,则需要使用 @types/i18n 这一 npm 包来实现 i18n 功能。本教程将详细介绍 @types/i18...

    5 年前
  • npm 包 @types/Helmet 使用教程

    在前端开发中,我们常常会使用一些第三方库和框架来实现某些功能。而在 TypeScript 项目中使用这些库时,常常会遇到类型不对应的问题。这时候,我们就需要为这些库安装对应的 TypeScript 类...

    5 年前
  • npm 包 @types/bcrypt 使用教程

    在前端开发中,安全性和数据加密非常重要。而 bcrypt 是一个用于密码加密和散列的库,它使用 Blowfish 加密算法来保护用户账户密码。在 TypeScript 项目中,你可以通过 npm 包 ...

    5 年前
  • npm 包 @types/app-root-path 使用教程

    简介 @types/app-root-path 是一个 Node.js 中的 npm 包,可用于确定应用程序的根路径。 如果你正在开发的应用程序是具有多个层次结构的大型应用程序,那么此工具可以帮助你更...

    5 年前
  • npm 包 winston-cloudwatch 使用教程

    Winston 是 Node.js 下的一个高度可配置且多传输协议的日志库,支持多种传输协议和自定义传输协议,而 winston-cloudwatch 是基于 Winston 的 AWS CloudW...

    5 年前
  • npm 包 chunk 使用教程

    前端开发离不开 npm,而 chunk 工具是一款优秀的 npm 包,它可以对项目中的代码进行优化,从而实现更快的加载速度和更好的用户体验。本文将介绍 chunk 的详细使用教程,并给出示例代码。

    5 年前
  • npm 包 @adexchange/aeg-common 使用教程

    简介 在前端开发过程中,频繁使用到各种 JavaScript 库和框架。npm 是目前最受欢迎的 JavaScript 包管理工具,可以方便地查找、安装并管理各种开源 JavaScript 包。

    5 年前
  • npm 包 type-zoo 使用教程

    简介 type-zoo 是一个基于 TypeScript 类型的工具集合,可以帮助开发者更方便地处理各种类型相关的任务。该库主要包括以下几个部分: 类型 - 包括条件类型、值类型、多元组、联合类型等...

    5 年前
  • npm 包 space-lift 使用教程

    什么是 space-lift space-lift 是一个 JavaScript 库,用于处理数组和对象的操作。它提供了一些功能,可以让你更容易地处理数据。它还可以帮助你编写更好的代码,去掉那些重复的...

    5 年前
  • npm 包 mandle 使用教程

    前言 随着前端开发的不断发展,开发中需要用到各种工具来提高效率和质量。其中一个重要的工具就是 npm。npm 不仅提供了丰富的第三方包,还可以帮助我们管理项目中的依赖。

    5 年前
  • npm 包 @frontendmonster/builder 使用教程

    前言 @frontendmonster/builder 是一个基于 webpack 的前端构建工具,可以帮助开发者在项目开发中快速构建出规范、高效、可维护的代码。该工具的实现基于 webpack 5 ...

    5 年前
  • npm 包 rand-token 使用教程

    简介 rand-token 是一个轻量级的用于生成随机令牌(token)的 npm 包。它可以在前端和后端使用,适合于需要生成随机字符串作为令牌的场景,例如用户认证、密码重置等。

    5 年前
  • npm包@types/koa-static 使用教程

    前言 在Web开发中,动态页面是必不可少的一部分。虽然动态页面在处理复杂数据等方面优秀,但是它们通常速度较慢,对服务器的压力也较大。静态页面则恰恰相反,速度快,响应快,效率高,对服务器的负载也较小。

    5 年前
  • npm 包 @types/koa-mount 使用教程

    npm 包 @types/koa-mount 使用教程 在使用 Node.js 开发 Web 应用时,我们通常使用一些框架来简化开发。Koa 是一个轻量级的 Web 框架,它的设计理念是中间件模式。

    5 年前
  • npm包@types/koa-compress使用教程

    简介 随着Web应用技术的发展,前端技术的发展变得越来越重要。对于前端开发者来说,一个拥有良好的开发工具链是必不可少的。在这些工具链中,Node.js和NPM一直是炙手可热的两大重要组成部分之一。

    5 年前
  • npm 包 @types/koa__router 使用教程

    前言 在现代化的web开发中,一个常见的框架是koa。而在koa的开发当中,路由功能也是必不可少的。koa__router 是一款koa官方支持的路由中间件,通过使用这个中间件,我们可以很方便地实现路...

    5 年前
  • npm包@types/koa__multer使用教程

    前言 在进行web开发时,上传文件是一项常见的功能。而目前主流的koa框架使用multer包来实现上传功能。而在使用过程中,为了更好地编写代码,需要使用typescript来规范代码结构。

    5 年前
  • npm 包 @koa/router 使用教程

    前言 在前端开发领域中,路由扮演着非常重要的角色。路由的设计能够直接影响到项目的开发难度和代码的可读性。为了解决这个问题,@koa/router 库被开发出来了。这个库允许您在 Koa 框架中添加路由...

    5 年前
  • npm 包 @koa/multer 使用教程

    npm 包 @koa/multer 使用教程 前言 在前端的开发过程中,文件上传是必不可少的一部分。随着前端技术的发展,已经有了很多成熟的文件上传解决方案。其中,@koa/multer 是一款基于 N...

    5 年前
  • npm 包 @eviljs/std-lib 使用教程

    在前端开发中,我们经常需要使用一些常见的工具和方法,比如节流函数、深拷贝等。这些工具虽然不难实现,但是每次都从头开始写很浪费时间,因此我们通常会使用一些公共的工具库。

    5 年前

相关推荐

    暂无文章