npm 包 @umijs/ui-types 使用教程

阅读时长 5 分钟读完

前言

在前端开发中,难免会遇到需要使用 UI 组件的情况。而在 React 生态中,一些成熟的 UI 组件库已经诞生。但是,在一些特殊场景下,我们可能需要自定义 UI 组件来满足项目需求,这时候,就需要使用一些辅助工具来简化我们的代码开发。本文将会介绍一款名为 @umijs/ui-types 的 npm 包,它是一款基于 TypeScript 的 UI 组件生成工具。

安装

安装 @umijs/ui-types,只需要在项目根目录执行以下命令即可:

使用方法

声明 UI 组件

使用 @umijs/ui-types 先需要声明一个 UI 组件,比如说:

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

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

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

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

这个 UI 组件就简单的只用了 TypeScript 的类型约束,ProfileProps 定义了 Profile 组件的属性,而我们约定了 name 必须是一个字符串类型,age 必须是一个数值类型。我们可以看到这个组件的样子:

安装 types

接下来,我们需要正式安装 @umijs/ui-types

生成类型代码

接下来,在 tsconfig.json 中,我们需要加入 typeRoots 属性:

然后,我们就可以在项目的根目录下,使用以下命令来生成类型:

这个命令会扫描在 src 目录下的全部 UI 组件,并将生成的类型定义在 src/ui.d.ts 中。这些类型可以让我们在开发阶段中,使用 TypeScript 帮助我们检查代码的正确性。比如说:

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

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

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

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

我们在 App 中,在传递 Profile 组件的 age 属性时,传递的是一个字符串类型,但是我们在 Profile 组件中已经定义了 age 必须是一个数值类型,这时候 TypeScript 就会报错。这可以提高我们开发代码的可靠性。

使用生成的类型代码

一旦我们生成了 ui.d.ts,我们就可以在项目中使用它。比如说,假如另一个开发者编写了一个组件,并希望他人使用这个组件。

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

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

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

在这段代码中,我们从 ui.d.ts 中,导入了 ProfileProps 类型。这样,当其他人想要使用这个组件时,就可以使用正确的属性来初始化组件了:

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

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

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

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

小结

通过使用 @umijs/ui-types ,我们可以通过编写 TypeScript 声明,简化开发过程,并且提高代码可靠性。这个 npm 包可以帮助我们生成类型代码,让我们在开发阶段可以更好的检查我们的代码正确性。这种类似的工具还有其他的包比如 react-codegencarmijson-schema-to-typescript ,我们可以根据各个场景的需求选择使用。

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