- 0133技术站
- 联系QQ:18840023
- QQ交流群
- 微信公众号
描述: 标识一个由JavaScript模块导出的成员。
@exports <moduleName>
在JSDoc3.3.0或更高版本中,<moduleName>
可以包含module:
前缀。在以前的版本中,你必须忽略此前缀。
@exports标签描述由JavaScript模块的exports
或module.exports
属性导出的任何内容。
在模块中,当您使用特定的exports
模块,@exports标签是不需要。JSDoc会自动识别出该对象的导出成员。同样,JSDoc会自动识别中的Node.js模块特定的module.exports
属性。
例如,CommonJS模块:
/** * A module that says hello! * @module hello/world */ /** Say hello. */ exports.sayHello = function() { return 'Hello world'; };
例如,Node.js模块:
/** * A module that shouts hello! * @module hello/world */ /** SAY HELLO. */ module.exports = function() { return "HELLO WORLD"; };
例如,AMD模块导出一个字面量对象:
define(function() { /** * A module that whispers hello! * @module hello/world */ var exports = {}; /** say hello. */ exports.sayHello = function() { return 'hello world'; }; return exports; });
例如,AMD模块导出一个构造函数:
define(function() { /** * A module that creates greeters. * @module greeter */ /** * @constructor * @param {string} subject - The subject to greet. */ var exports = function(subject) { this.subject = subject || 'world'; }; /** Say hello to the subject. */ exports.prototype.sayHello = function() { return 'Hello ' + this.subject; }; return exports; });
如果你的模块导出使用的是exports
或module.exports
之外的其他方法,使用@exports
标签来说明哪些成员用于导出。
例如:AMD模块导出一个对象:
define(function () { /** * A module that says hello! * @exports hello/world */ var ns = {}; /** Say hello. */ ns.sayHello = function() { return 'Hello world'; }; return ns; });
推荐手册