構文
@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'
例
次の例は、モジュール内の記号に使用される名前パスを示しています。最初の記号はモジュールプライベートまたは「内部」変数で、モジュール内でしかアクセスできません。2番目の記号はモジュールによってエクスポートされる静的関数です。
/** @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」という 1 つのインスタンスメンバー「module:bookshelf.Book#title」を持つ静的メンバーとしてドキュメント化されています。
/** @module bookshelf */
/** @class */
this.Book = function (title) {
/** The title. */
this.title = title;
};
次の例では、2 つの関数は名前パス「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 モジュールのドキュメント化を参照してください。