api-extractor 不是 vscode 插件,而是需手动配置的 node.js cli 工具;默认不生成 .d.ts,须启用 rollup 模式并设置 mainentrypointfilepath,且导出成员需标记 @public 才会被提取。

Api-Extractor 不是 VSCode 插件,它是一个独立的 Node.js 命令行工具,不能通过 VSCode 扩展市场安装或“配置插件”来启用。 你看到的“VSCode 配置 Api-Extractor”类搜索,本质是把构建流程嵌入开发环境,而非在编辑器里点几下就生成 .d.ts。
为什么装了 Api-Extractor 还没生成声明文件?
Api-Extractor 默认不自动生成任何文件——它只分析、报告和可选地提取类型,但输出声明文件需显式启用 mainEntryPointFilePath + rollup 模式。常见错误包括:
- 只运行
api-extractor run,但api-extractor.json中未设置"mainEntryPointFilePath"(必须指向一个导出全部公共 API 的入口文件,如src/index.ts) - 启用了
"rollup": true,但入口文件里用的是export * from './xxx',而目标模块未启用declare module或缺少export语句,导致 Api-Extractor 无法识别为“公开 API” - TS 编译失败(如
noImplicitAny报错)时,Api-Extractor 默认跳过提取,不会报错提示——需加--show-all-logs查看是否卡在编译阶段
如何让 VSCode 在保存时自动触发声明生成?
VSCode 本身不监听 .ts 变更并调用 Api-Extractor,但可通过 tasks.json + 文件监视实现近似效果:
- 在
.vscode/tasks.json中定义一个 task,命令为npx api-extractor run --local(--local读取项目根目录的api-extractor.json) - 添加
"isBackground": true和匹配"problemMatcher"(如$api-extractor),使错误能内联显示在编辑器中 - 配合
watch模式:Api-Extractor 官方不提供热重载,但可用npm install --save-dev chokidar-cli,然后配置脚本"watch:types": "chokidar 'src/**/*.{ts,tsx}' -c 'npm run api-extract'" - ⚠️ 注意:频繁生成
.d.ts可能触发 TS 语言服务反复重载,导致 VSCode 卡顿;建议仅在发布前手动运行,日常靠tsc --emitDeclarationOnly+include覆盖更轻量
Api-Extractor 与 tsc --declaration 的关键区别
两者都产出 .d.ts,但目标完全不同:
-
tsc --declaration是“全量照抄”,每个.ts文件对应一个.d.ts,包含所有内部类型(private、interface实现细节),适合库内部消费 -
api-extractor是“对外封装”,只提取标记为@public/@alpha的成员,合并成单个index.d.ts,自动过滤未文档化的、@internal的、未导出的符号——这才是发布到 npm 的正确姿势 - 若你用
api-extractor却没加@public标记,它会默认忽略所有 API,最终dist/index.d.ts为空,且不报错 - 兼容性上:
api-extractor强制要求tsconfig.json中"skipLibCheck": true,否则可能因依赖类型冲突中断提取
真正容易被忽略的是:Api-Extractor 的 .d.ts 输出不是“生成即用”,它必须配合正确的 package.json 字段("types": "dist/index.d.ts")和发布前的 npm pack 验证,否则用户安装后根本看不到类型提示——类型路径写错、dist 目录未包含、甚至 main 字段覆盖了 types,都会让整个流程失效。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











