安裝
cnpm i --dev typedoc
or
yarn add --dev typedoc
使用
// 指定生成對象
typedoc file.ts
// 指定輸出目錄
typedoc --out ./docs
默認將在根目錄生成文檔目錄 /docs
注釋規(guī)則
/**
* 首行功能名稱
* @param 參數(shù)說明
* @typeParam 類型參數(shù)
* @return(s) 返回說明
* @event 事件說明
* @hidden @ignore 跳過
* @interval 內(nèi)部代碼母截,如果配置了 excludeInternal 該段將被忽略
* @category 反射分組
*/
// 其他
/**
* @prop 屬性
* @example 使用例子
*/
// 代碼塊,使用markdown語法
/**
* ``` typescript
* class Man { ... }
* ```
*/
### 注釋例子
/**
* 文本節(jié)點
* @param tag 節(jié)點內(nèi)容
* @return 返回文本節(jié)點字符
* @example
* ``` typescript
* 1. textTag(null)
* => ''
*
* 2. textTag(undefined)
* => ''
*
* 3. textTag({ name: 'coco' })
* => `
* {
* name: 'coco'
* }
* `
*
* 4. textTag('container')
* => 'container'
*
* 5. textTag(() => {...})
* => '() => {...}'
* ```
*/
配置項目
tsconfig
使用 tsconfig 配置文件規(guī)則
typedoc --tsconfig </path/to/tsconfig.json>
entryPoints
入口地址
$ typedoc a b
# or
$ typedoc --entryPoints a --entryPoints b
exclude
排除規(guī)則,排除不需要生成的文件
typedoc --exclude "**/*+(index|.spec|.e2e).ts"
excludePrivate
不生成類的 Private 屬性文檔
typedoc --excludePrivate
excludeProtected
不生成 類的 Protected 屬性文檔
typedoc --excludeProtected
excludeInternal
排除內(nèi)部信息
typedoc --excludeInternal
media
注入多媒體文件地址
typedoc --media <path/to/media/>
includes
注入其他文檔地址, 例如 markdown 文件
typedoc --includes <path/to/includes/>
out
文檔輸出目錄
typedoc --out <path/to/documentation/>
json
輸出 json 文件
typedoc --json <path/to/out-file.json>
emit
typedoc --emit
theme
設(shè)置主題
typedoc --theme <default|minimal|path/to/theme>
highlightTheme
設(shè)置高亮主題
typedoc --highlightTheme dark-plus
watch
監(jiān)聽生成
typedoc --watch
使用配置文件
// typedoc.config.json
{
"entryPoints" : "./src",
"exclude": "**/__test__/*.ts",
"out": "./docs"
}
// package.json
"doc:build": "typedoc --options ./typedoc.config.json",
配合構(gòu)建工具使用
Gulp
// 安裝插件
npm install --save-dev gulp-typedoc
// 添加任務(wù)
var typedoc = require("gulp-typedoc");
gulp.task("typedoc", function () {
return gulp.src(["src/**/*.ts"] // 入口).pipe(
typedoc({
// 文檔生成配置
out: "docs/",
name: "My project title",
})
);
});