🌑 初始化 TypeScript 库项目
🍞 相关资源:
TypeScript library starter alexjoverm/typescript-library-starter: Starter kit with zero-config for building a library in TypeScript, featuring RollupJS, Jest, Prettier, TSLint, Semantic Release, and more! (github.com) (opens new window)
开发 TypeScript 基础库脚手架工具,快速初始化 TypeScript 项目。
# 创建项目
clone typescript-library-starter
项目:
git clone git@github.com:alexjoverm/typescript-library-starter.git axios-typescript
1
文件目录相关:
├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── code-of-conduct.md ├── node_modules ├── package-lock.json ├── package.json ├── rollup.config.ts // rollup 配置文件 ├── src // 源码目录 ├── test // 测试目录 ├── tools // 发布到 GitHup pages 以及 发布到 npm 的一些配置脚本工具 ├── tsconfig.json // TypeScript 编译配置文件 └── tslint.json // TypeScript lint 文件
1
2
3
4
5
6
7
8
9
10
11
12
13集成工具:
- rollup.js (opens new window):打包工具;
- Prettier (opens new window) / TSLint (opens new window) 格式化代码;
- TypeDoc (opens new window):自动生成文档;
- Jest (opens new window):单元测试;
- Commitizen (opens new window) :生成规范注释;
- Semantic release (opens new window):管理版本和发布;
- husky (opens new window):git hooks 工具
- Conventional changelog (opens new window):生成 change log;
# 入口文件
删除原来 src
的文件,创建整个库入口文件 index.ts
。先定义一个 axios
方法,并默认导出:
function axios(config) {
}
export default axios
1
2
3
4
5
2
3
4
5
要给 config
参数定义一种接口类型。创建 types
目录存放类型接口。
定义 AxiosRequestConfig
接口类型和请求方法字符串字面量类型 Method
:
export interface AxiosRequestConfig {
url: string
method?: Method
data?: any
params?: any
}
export type Method =
'get'
| 'GET'
| 'post'
| 'POST'
| 'delete'
| 'DELETE'
| 'head'
| 'HEAD'
| 'options'
| 'OPTIONS'
| 'put'
| 'PUT'
| 'patch'
| 'PATCH'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
然后在入口文件 index.ts
引入类型作为 config
参数的类型:
编辑 (opens new window)
📢 上次更新: 2022/09/02, 10:18:16