TypeScript 使用规范

1,245 阅读1分钟

JS 基本类型分类
原子类型:String、Number、BigInt、Boolean、Symbol、Undefined、Null
引用类型:Object

类型抽离规则:
如果该类型只适用于当前模块,就抽离到当前模块下的 types 文件中;
如果该类型是整个系统通用的,就抽离到项目的 types 文件中。

基本准则

  • 如果一个类型使用的次数会大于 1(包括未来),那么这个类型就需要专门声明并抽离出来

image.png

  • 每一个方法或者函数都要声明好入参和返回值(void 除外)的类型
  • 如果需要 import 一个类型,而非值的时候,需要使用 import type 标识符。并且,所有 import type 的书写位置应当在 import 的下面,中间空一行

image.png

  • 公共函数或者方法(包括 utils 和 api 函数等)需要使用 JSDoc 加上注释,并在注释中加上各个参数的类型。如果该参数是引用类型,需在类型中加上该参数的各个属性的注释(如果该类型是单独抽离出来的,就不需要了,因为在类型声明的地方已经有注释了)

image.png

image.png

image.png

第三方库

  • 如果第三方库中没有相应的 TS 类型声明,就去找相对应的 @types/libname(一般常用的库,社区都会有相对应的类型声明库)。如果没有相应的类型库,需要在项目的 declares 文件夹中新增 libname.d.ts 文件。然后首先在其中加上 declare module 'libname' 模块声明,并在模块声明中导出用到的子模块

image.png

image.png

在 Vue 中使用

  • prop、ref、reactive 和 emit 中的每一个事件都要做好相应的类型或函数声明

image.png

image.png

image.png