@module

.. @module::
语法

@module [[{<type>}] <moduleName>]

概述

在JSDoc 3.3.0及更高版本中, ``<moduleName>``可能包含``module: ``前缀. 在以前的版本中, 您必须省略此前缀.

注意

If you provide a type, you must also provide a name.

@module标记将当前文件标记为自己的模块. 除非另有说明, 否则假定文件中的所有符号都是模块的成员.

Link to a module (e.g. within a [@link]link or [@see]see tag) using “module:moduleName”. For example, “@module foo/bar” can be linked to using “{@link module:foo/bar}”.

如果未提供模块名称, 则它是从模块的路径和文件名派生的. 例如, 假设我有一个位于``src``目录下的文件``test.js``, 它包含块注释``/ ** @module */``. 以下是运行JSDoc的一些场景以及test.js的结果模块名称:

Derived module names if none is provided.
# 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'
示例

以下示例显示了用于模块中符号的名称路径. 第一个符号是模块私有或“内部”变量 - 它只能在模块中访问. 第二个符号是由模块导出的静态函数.

Basic @module use
/** @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”.

Defining exported symbols as a member of ‘this’
/** @module bookshelf */
/** @class */
this.Book = function (title) {
    /** The title. */
    this.title = title;
};

在以下示例中, 这两个函数的名称路径为“module: color/ mixer.blend”和“module: color/ mixer.darken”.

Defining exported symbols as a member of ‘module.exports’ or ‘exports’
/** @module color/mixer */
module.exports = {
    /** Blend two colours together. */
    blend: function (color1, color2) {}
};
/** Darkens a color. */
exports.darken = function (color, shade) {};

有关更多示例, 请参阅`记录JavaScript模块<howto-commonjs-modules.html>`__.