@use JSDoc

構文

@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 の基本的な使用方法
/** @module myModule */

/** will be module:myModule~foo */
var foo = 1;

/** will be module:myModule.bar */
var bar = function() {};

エクスポートされた記号が module.exportsexports、または this のメンバーとして定義されている場合、JSDoc はその記号がモジュールの静的メンバーであると推測します。

次の例では、Book クラスは、「module:bookshelf.Book」という 1 つのインスタンスメンバー「module:bookshelf.Book#title」を持つ静的メンバーとしてドキュメント化されています。

エクスポートされた記号を 'this' のメンバーとして定義
/** @module bookshelf */
/** @class */
this.Book = function (title) {
    /** The title. */
    this.title = title;
};

次の例では、2 つの関数は名前パス「module:color/mixer.blend」と「module:color/mixer.darken」を持ちます。

エクスポートされた記号を 'module.exports' または 'exports' のメンバーとして定義
/** @module color/mixer */
module.exports = {
    /** Blend two colours together. */
    blend: function (color1, color2) {}
};
/** Darkens a color. */
exports.darken = function (color, shade) {};

詳細については、JavaScript モジュールのドキュメント化を参照してください。