如果是 TS 项目,会自动生成 dts,但是是一对一的,不会打包成一个,想打包的话 rollup 、webpack 都有提供一些插件,但效果都不慎理想,之前打包类库有用过一个 rollup-plugin-dts,项目代码一多,到时候声明文件就不是人能看懂的了。TS 现在已经不推荐使用 namespace 和 module 了,但是 dts 里面还是挺好用的,后面还是通过自动生成的手动整理。
JS 项目想生成 dts 估计不太靠谱。
支持 ts,就要在 package.json 中的 typings 中指向你项目中的 dts 文件,文件名没关系,就行 main 这样的入口文件。
第三方类库如果没有自带声明,可以搜 @types/xxx,额外安装声明文件,不冷门的基本都有,没有的话在你项目内容可以“帮”他写,一般是 declare module ‘xxx’,放在你 tsconfig 包含的目录里。
dts 是解除 ts 之后就让人爱不释手的东西,即使是 js 项目,编辑器也可以根据其他项目的 dts 提供智能提示,我现在公司调用后端的接口就是通过后端扫描数据结构和接口路由自动生成并发布的一个项目,声明文件截至目前有 16325 行,打包之后的代码只有 12kb,里面有 10kb 还是后端生成的枚举文件,使用起来接口地址、参数定义、返回格式统统智能提示都提供,如果是 ts 项目,接口更新会直接在编译时把需要改的地方列出来,平时开发直接不用查文档,组员用过都说好