API Extractor
微软出品、面向 TypeScript 库作者的 API 分析工具。官方原话是它能 “produces three different output types”:API 报告(.api.md,把公共 API 序列化成快照、进 Git 走 PR 评审,拦截破坏性变更)、.d.ts rollup(像 Webpack 打包 JS 那样,把分散的 .d.ts 合并成单个发布用声明文件,并按发布等级裁剪)、API 文档模型(.api.json,供 api-documenter 渲染成 Markdown / DocFX 站点)。它读取 TSDoc 注释,靠 @public / @beta / @alpha / @internal 发布标签驱动裁剪与报告分级。它不是应用打包器,也不直接出 HTML 文档站。
评价
优点
- 把"公共 API 契约"做成 Git diff:
.api.md提交进仓库,API 一变 PR 里就有 diff,破坏性变更评审有据可依 .d.tsrollup 简化声明分发:多文件声明合并成单个.d.ts,还能按@public/@beta/@alpha产多档裁剪输出- 三大功能(报告 / rollup / 文档模型)相互独立、按需开关,共用一次分析
- 微软背书 + Rush Stack 生态:贴合大型 monorepo,与
api-documenter、Rush、Heft 同源 - 是 TSDoc 标准的主要推动者 / 参考实现,对 TSDoc 语义落地最完整
缺点
- 偏库作者向:纯应用项目(不发包、无对外 API 契约)基本用不到
- 不直接出文档站:要 HTML / Markdown 还得配
api-documenter或 DocFX,链路偏长 - 自带一份锁定版本的 TypeScript 编译器,与项目 TS 版本差异大时易报编译错误,需
--typescript-compiler-folder手动对齐 - 配置项与诊断消息(
ae-*/tsdoc-*/TS*)较多,上手有一定认知成本 --local与 CI 行为差异是高频坑:CI 误加--local会让破坏性变更门禁失效