語法
@module [[{<type>}] <moduleName>]
在 JSDoc 3.3.0 及更新版本中,<moduleName>
可以包含 module:
前綴。在先前版本中,您必須省略此前綴。
注意:如果您提供類型,您必須同時提供名稱。
概述
@module 標籤標記目前的檔案為其自己的模組。除非另有說明,否則檔案中的所有符號都假設為模組的成員。
使用「module:moduleName」連結到模組(例如在 @link 或 @see 標籤中)。例如,「@module foo/bar」可以使用「{@link module:foo/bar}」連結。
如果未提供模組名稱,則會從模組的路徑和檔名中衍生。例如,假設我有一個位於 src
目錄中的檔案 test.js
,其中包含區塊註解 /** @module */
。以下是執行 JSDoc 和 test.js 的結果模組名稱的一些情況
# from src/
jsdoc ./test.js # module name 'test'
# from src's parent directory:
jsdoc src/test.js # module name 'src/test'
jsdoc -r src/ # module name 'test'
範例
以下範例顯示模組中符號所使用的名稱路徑。第一個符號是模組私有或「內部」變數——它只能在模組內存取。第二個符號是模組匯出的靜態函式。
/** @module myModule */
/** will be module:myModule~foo */
var foo = 1;
/** will be module:myModule.bar */
var bar = function() {};
當匯出的符號定義為 module.exports
、exports
或 this
的成員時,JSDoc 推斷該符號是模組的靜態成員。
在以下範例中,Book 類別被記錄為靜態成員「module:bookshelf.Book」,有一個實例成員「module:bookshelf.Book#title」。
/** @module bookshelf */
/** @class */
this.Book = function (title) {
/** The title. */
this.title = title;
};
在以下範例中,這兩個函式有名稱路徑「module:color/mixer.blend」和「module:color/mixer.darken」。
/** @module color/mixer */
module.exports = {
/** Blend two colours together. */
blend: function (color1, color2) {}
};
/** Darkens a color. */
exports.darken = function (color, shade) {};
請參閱 記錄 JavaScript 模組 以取得更多範例。