一、前言
用过 NestJS 的同学,应该都对这种声明式接口写法印象深刻:

1. 第一步:扩展 Axios 类型,解决自定义属性报错
首先给 AxiosRequestConfig 扩展自定义属性,避免 TS 报错:

2. 第二步:抽离公共路径解析函数
这是整个方案的灵魂,专门处理 :id 这类路径参数,自动替换并过滤查询参数:

3. 第三步:实现 Get/Post 装饰器
封装通用的请求装饰器,自动处理路径参数、请求配置、Token 开关:

4. 第四步:请求拦截器,全局处理 Token
直接导入 Redux store 实例,组件外也能拿到 Token:

5.最终使用体验
定义 API 类,像写 Nest 接口一样简单

6.调用接口
实际调用例子

7.注意事项
开启experimentalDecorators 和 emitDecoratorMetadata
