如何程序化生成仅含目标TS文件及依赖所用类型的声明文件?
大型TS代码库生成精简类型声明的程序化方案
可行的工作流与工具方案
1. 基于第三方工具的快速方案
使用dts-bundle-generator工具直接实现类型的tree shaking与打包:
- 全局安装工具:
npm install -g dts-bundle-generator - 针对目标文件生成精简后的单一类型声明文件:
该工具会自动分析目标文件的所有导入依赖,仅保留被实际使用的类型(包括dts-bundle-generator --out-file bundled-types.d.ts your-target-file.tsnode_modules中的依赖类型),剔除冗余内容,最终输出单一文件。
2. 结合TS官方工具的自定义方案
如果需要更精细的控制,可搭配TypeScript编译器工具链:
- 先通过
tsc生成目标文件及其依赖的完整声明:tsc --declaration --emitDeclarationOnly --outDir temp-decls your-target-file.ts - 再使用
rollup-plugin-dts对生成的声明文件进行tree shaking并打包:
编写简单的# 安装依赖 npm install -D rollup rollup-plugin-dtsrollup.config.js配置文件指定入口和输出,执行打包后即可得到精简的单一类型文件。
3. 关键注意事项
- 确保项目
tsconfig.json中正确配置了include、exclude和typeRoots,保证编译器能识别所有必要的类型文件。 - 对于复杂泛型、条件类型等特殊场景,需验证生成的声明文件是否完整保留了目标代码所需的类型信息。
- 部分第三方库的类型声明可能存在不规范情况,需要手动调整工具配置以适配。
内容的提问来源于stack exchange,提问作者Eugene Kim
相关产品推荐
相关产品推荐

