记录开发swagger转ts声明cli时遇到的ts声明问题。
安装了swagger官方提供的swagger转openApiSDK。使用时报错如上。
swagger2openapi包没有提供ts声明包,所以我在/typings/index.d.ts增加了导出声明
declare module 'swagger2openapi'
但是并不好使 还是提示找不到
最终解决方案:
修改node_moudles包文件 增加index.d.ts声明,再次执行命令,声明可用。
但是考虑到其他人维护时可能会重新安装包,使用patch-package修改包指向,步骤如下:
1. yarn add patch-package --save-dev
2. 修改package.json,新增命令postinstall:
"scripts": {
"postinstall": "patch-package"
}
3. 修改包文件 增加index.d.ts声明
4. npx patch-package swagger2openapi
根目录下会新增patches文件夹,里面就出现我们改过的包啦
报错解决了,接触ts不深,仅限于日常开发,还有如下问题:
- TS为什么需要这个声明?
- 为什么这个声明可以在目录任何地方定义?
- 我定义的.d.ts文件为什么不生效?