Skip to content

参考

基于 TypeDoc 0.28.x 编写

速查

  • 安装:npm install --save-dev typedoc;最简:npx typedoc src/index.ts(默认输出 ./docs
  • 当前 latest 0.28.19,纯 ESM,peer TS 5.0 ~ 6.0,仍是 0.x(minor 可含破坏性变更)
  • 标签三类:Block(@param)/ Modifier(@internal)/ Inline({@link}),各有白名单 blockTags/modifierTags/inlineTags
  • entryPointStrategy 四值:resolve(默认)/ expand / packages / merge
  • 可见性:excludePrivate=trueexcludeProtected=false、excludeInternal=跟随 TS stripInternal
  • 校验:notExported/invalidLink=true、notDocumented=false;CI 用 treatValidationWarningsAsErrors
  • 接 VitePress/Docusaurus 必须 typedoc-plugin-markdown(默认主题只出 HTML)
  • 工具链坐标:TypeDoc 主 TS(读类型系统)、JSDoc 主纯 JS(读注释标注)、API Extractor 做 API 治理、TSDoc 是注释规范

CLI 速查

bash
npx typedoc --entryPoints src/index.ts --out docs      # 单入口出 HTML
npx typedoc --entryPoints src/index.ts --json docs/api.json   # 出 JSON(会覆盖 outputs)
npx typedoc --treatWarningsAsErrors --validation.notDocumented true   # 严格 CI
npx typedoc --watch                                    # 监听
npx typedoc --showConfig                               # 打印最终生效配置后退出
flag等价 option说明
--entryPoints <glob>entryPoints显式入口,可重复
--out <dir>outHTML 输出目录
--json <file>jsonJSON 反射数据(覆盖 outputs)
--tsconfig <file>tsconfig指定 tsconfig.json
--plugin <name>plugin加载插件,可重复
--theme <name>theme主题名(默认 default
--watchwatch监听增量重建
--skipErrorCheckingskipErrorChecking跳过 TS 类型检查(慎用)

全标签速查

详见 注释与标签体系

Block 块标签(独占段落):

标签别名用途
@param描述参数(破折号可选)
@returns@return描述返回值
@typeParam@template泛型类型参数
@remarks摘要外的补充详述
@example用法示例(0.28 语义变了)
@defaultValue@default默认值
@see / @deprecated / @throws交叉引用 / 废弃 / 异常
@category / @group自定义分类 / 分组
@module文件级注释 + 重命名模块

Modifier 修饰标签(纯开关):@internal@hidden / @ignore@alpha / @beta / @experimental@public / @private / @protected@readonly@class / @interface / @enum / @namespace / @function@event / @eventProperty@overload@packageDocumentation@primaryExport(0.28 新增)。

Inline 内联标签(嵌在文字里):{@link} / {@linkcode}(等宽)/ {@linkplain}(普通)、{@inheritDoc}{@label}{@include} / {@includeCode}(0.28 新增)。

配置 options 速查

详见 配置详解

分类option默认作用
Configtsconfig / compilerOptions / plugin自动tsconfig / 编译覆盖 / 插件
InputentryPoints / entryPointStrategyresolve入口与策略
Inputexclude / externalPattern / excludeExternalsfalse排除文件 / 外部模块
InputexcludePrivate / excludeProtected / excludeInternal见可见性可见性过滤
Inputname / includeVersion / readme元信息
Outputout / outputs / json / pretty / emitdocs输出位置 / 格式
Outputtheme / router / customCss / navigationLinksdefault/kind主题 / 路由 / 定制
OrganizationcategorizeByGroup / defaultCategory / sort / kindSortOrderfalse/Other分组 / 排序
Validationvalidation / treatWarningsAsErrors / treatValidationWarningsAsErrors校验
Otherwatch / showConfig / logLevel其它

entryPointStrategy 四值resolve(默认,跟 re-export)/ expand(每文件出页)/ packages(monorepo)/ merge(合并 JSON)。

validation 子项默认notExported=true、invalidLink=true、invalidPath=true、rewrittenLink=true、notDocumented=falseunusedMergeModuleWith=true。

0.28 重大变更清单

从 0.27 升 0.28 是版本差异题富矿,纯 ESM + drop TS < 5.0。

破坏性变更:

变更说明 / 迁移
引入 Router 抽象Reflection.url / .anchor / .hasOwnDocument 被移除(旧主题/插件需改写)
入口 glob 必须用 / 分隔不再接受反斜杠(Windows 上 src\\index.ts 失效)
intentionallyNotExported 改路径文件名引用改为包相对路径(原绝对路径)
merge 策略要求 JSON 来自 0.28+老版本 JSON 不能合并
@example 语义变化移除"具名示例(首行当标题)",改为无围栏时整段当代码
选项重命名namedAnchorsuseHTMLAnchors;移除 hideInPageTOC
函数型变量导出仅当用函数表达式初始化才当 function,否则需 @function 标签
@group/@category 不再剥离改用 notRenderedTags 跳过渲染
移除 jp localeja

新增:

  • outputs 数组:一次运行多种输出(HTML + JSON + 自定义)。
  • router 选项:改输出目录结构,可被插件扩展。
  • 新标签:@primaryExport@preventInline / @inlineType@preventExpand / @expandType@function@mergeModuleWith@include / @includeCode
  • packagesRequiringDocumentation 校验选项;@group none / @category none 无标题渲染;@disableGroups
  • typedoc/browser 入口:浏览器里反序列化 JSON。

工具链对比

维度TypeDocJSDocAPI ExtractorTSDoc
本质TS API 文档生成器通用文档生成器.d.ts rollup + API 报告注释规范(非工具)
类型来源TS 编译器/类型系统(含推断、泛型)注释里的 @type 标注.d.ts(已是类型)
产出HTML 站点 / JSON 模型HTML 站点.api.md / .d.ts rollup / .api.json标准 + parser 库
主用途给人浏览的 API 参考站JS 项目文档监控公共 API 破坏性变更统一注释语法
维护方TypeStrong(社区)社区MicrosoftMicrosoft
当前版本0.28.194.0.57.58.9@microsoft/tsdoc
何时选TS 库要可浏览 API 站/JSON纯 JS 项目库的 API 治理/防破坏想规范注释(配合上面)

选型 + 配合一句话

纯 JS → JSDoc(见 JSDoc 笔记);TS 库要 API 站/JSON → TypeDoc;库的 API 报告 + 破坏性变更门禁 → API Extractor;想规范注释语法 → TSDoc。配合关系:TSDoc 定语法 → 照 TSDoc 写注释 → API Extractor 做 API 报告与防破坏 → TypeDoc 生成给人看的站点。TypeDoc 与 API Extractor 互补(一个面向"人读站点",一个面向"API 治理"),不是二选一。

踩坑清单

#对策
1exclude ≠ tsconfig 的 excludetypedoc exclude 只决定"哪些不当入口",要彻底不编译改 tsconfig.json 的 exclude
2@internal 默认没被过滤excludeInternal 跟随 TS stripInternal,没设时是 false;开 stripInternal 或显式 excludeInternal
3notExported 告警刷屏导出该类型 / 用 typedoc-plugin-missing-exports / 列入 intentionallyNotExported0.28 用包相对路径
40.28 入口路径反斜杠失效必须 / 分隔(glob 语义)
5接 VitePress 却用默认主题必须装 typedoc-plugin-markdown,且文档站 build 之前跑 typedoc
6@example 行为在 0.28 变了旧"具名示例"被移除;无围栏时整段当代码——按新规则改写或加围栏
7packages 策略里插件不生效子包插件不会加载,插件只在顶层配置加载
8自定义主题/插件升 0.28 崩Reflection.url/anchor/hasOwnDocument 被移除,改用 Router,旧插件需改写
9--json 静默覆盖 outputs同时配 outputs--jsonjson 会盖掉对应项
10类型太深被截断maxTypeConversionDepth 默认 10,过深被截,必要时调大
11skipLibCheck 缺失报第三方 .d.tscompilerOptions"skipLibCheck": true,或 --skipErrorChecking(会漏自己的真错)

版本与现状

  • 当前 latest 0.28.19(2026-04-12)。0.28.0 于 2025-03 发布,0.28.x 约每 2~4 周一个补丁。
  • peer TS 5.0.x ~ 6.0.x,版本号与 TS 紧耦合;仍是 0.x(无稳定大版本承诺,minor 可含破坏性变更)。
  • 0.28 是纯 ESM,已 drop TS < 5.0。
  • 生态版本:typedoc-plugin-markdown 4.12.0、typedoc-vitepress-theme 1.1.3、docusaurus-plugin-typedoc 1.4.2

文档与 GitHub 链接

返回:入门 · 注释与标签体系 · 配置详解 · 主题与插件 · 接入文档站