You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何程序化生成仅含目标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.ts
    
    该工具会自动分析目标文件的所有导入依赖,仅保留被实际使用的类型(包括node_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-dts
    
    编写简单的rollup.config.js配置文件指定入口和输出,执行打包后即可得到精简的单一类型文件。

3. 关键注意事项

  • 确保项目tsconfig.json中正确配置了include、exclude和typeRoots,保证编译器能识别所有必要的类型文件。
  • 对于复杂泛型、条件类型等特殊场景,需验证生成的声明文件是否完整保留了目标代码所需的类型信息。
  • 部分第三方库的类型声明可能存在不规范情况,需要手动调整工具配置以适配。

内容的提问来源于stack exchange,提问作者Eugene Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:08:20