解决引入swagger2openapi包时,.d.ts文件无法识别问题

214 阅读1分钟

image.png 记录开发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不深,仅限于日常开发,还有如下问题:

  1. TS为什么需要这个声明?
  2. 为什么这个声明可以在目录任何地方定义?
  3. 我定义的.d.ts文件为什么不生效?