@use JSDoc

语法

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

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

注意:如果你提供了一个类型,则必须同时提供一个名称。

概述

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

使用“module:moduleName”链接到模块(例如在 @link@see 标记中)。例如,可以使用“{@link module:foo/bar}”链接到“@module foo/bar”。

如果未提供模块名称,则它将从模块的路径和文件名派生。例如,假设我有一个文件 test.js,位于 src 目录中,其中包含块注释 /** @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 用法
/** @module myModule */

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

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

当导出的符号被定义为 module.exportsexportsthis 的成员时,JSDoc 推断该符号是模块的静态成员。

在以下示例中,Book 类被记录为静态成员“module:bookshelf.Book”,有一个实例成员“module:bookshelf.Book#title”。

将导出的符号定义为 'this' 的成员
/** @module bookshelf */
/** @class */
this.Book = function (title) {
    /** The title. */
    this.title = title;
};

在以下示例中,这两个函数的名称路径为“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 模块 以获取更多示例。