我的模块具有以下 AMD 结构。
/* globals define */
define([""], function() {
'use strict';
var module = {};
function _somePrivateFunc() {}
function somePublicFunc() {}
module.somePublicFunc = somePublicFunc;
return module;
});
我正在努力使用 JSDoc 使其与我的模块一起使用。到现在为止,我可以让它像
/* globals define */
/**
* Module description here
* @module some/module/name
*/
define([""], function() {
'use strict';
/**
* @alias module:some/module/name
*/
var module = {};
function _somePrivateFunc() {}
function somePublicFunc() {}
/**
* Some property description here
* @itWorks
*/
module.somePublicFunc = somePublicFunc;
return module;
});
如您所见,它正在工作。但是我希望在函数声明上定义我的文档注释,而不是在我将它们添加到模块的地方。我想实现这一点:
/* globals define */
/**
* Module description here
* @module some/module/name
*/
define([""], function() {
'use strict';
/**
* @alias module:some/module/name
*/
var module;
/**
* Somehow make this appear in JSDoc
* @extend module:some/module/name
* @private
*/
function _somePrivateFunc() {}
/**
* Make this appear in JSDoc for sure.
*/
function somePublicFunc() {}
// I want this to NOT annotate, and I want the property to gather JSDoc
// from the func. declaration
module = {
somePublicFunc: somePublicFunc
};
return module;
});
后一个是我想要实现的,但遗憾的是它不起作用:(
有任何想法吗?干杯
编辑:
我取得了一些进展。请注意,如果我只写这个:
define('dep', function(require) {
/**
* @exports dep
*/
var module = {};
/**
* Adds two numbers together.
* @param {Number} a the first number
* @param {Number} b the second number
* @return {Number} the sum of a and b
*/
function sum(a, b) {
return a + b;
}
module.sum = sum;
return module;
});
那么输出为空。JSDoc 无法正确生成文档。虽然如果我@method <name>
为我的函数添加注释,那么它会自动运行得很好。有趣,但仅添加一个@method
没有名称的注释是不够的。我的最终工作解决方案如下所示:
define('dep', function(require) {
/**
* @exports dep
*/
var module = {};
/**
* Adds two numbers together.
* @func sum
* @param {Number} a the first number
* @param {Number} b the second number
* @return {Number} the sum of a and b
*/
function sum(a, b) {
return a + b;
}
/**
* Creates a closure. Adds two numbers together
* @func _add
* @param {Number} a the closure variable to add statically
* @return {Function} the closure
* @private
*/
function _add(a) {
return function(b) {
return a + b;
};
}
module.sum = sum;
return module;
});
CLI 标志-p
使私有成员出现在文档中。
附加信息
通过我的示例代码,我只能通过一种方式制作内部链接:
/**
* Adds two numbers together.
* @func sum
* @param {Number} a the first number
* @param {Number} b the second number
* @return {Number} the sum of a and b
* @see {@link module:dep~_add|_add}
*/
function sum(a, b) {
return a + b;
}