简介
typed-graphql 是一个用于 Typescript 和 Javascript 的 GraphQL 类型生成器,它允许您从 GraphQL schema 中生成类型,避免手动进行类型转换。
在使用 typed-graphql 时,您可以通过定义 schema 和选择要生成的类型的方式,自动生成类型定义和 TypeScript/JavaScript 代码。
使用 typed-graphql 的好处是,有严格的类型定义可以避免在 GraphQL 查询时出现类型错误,节省了时间和精力。
安装
在终端输入以下命令,即可安装 typed-graphql
npm install 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