jsdoc 不信任@param 声明
jsdoc doesn't trust @param declarations
在如下代码上运行 jsdoc 时,@param 文档将被忽略。我认为这是因为我在 IIFE 中返回函数,但考虑到这种模式在 JS 中有多常见,我很难相信 jsdoc 无法处理它。
/** @namespace */
var util = {
/**
* Repeat <tt>str</tt> several times.
* @param {google.maps.Marker} str The string to repeat.
* @param {number} [times=1] How many times to repeat the string.
* @returns {string}
*/
repeat: (function() {
var magicNumber = 1;
return function(str, times) {
if (times === undefined || times < magicNumber) {
times = magicNumber;
}
return new Array(times+1).join(str);
};
}())
};
显然,如果 jsdoc 认为记录的项目是 函数 ,它只会包含 @param
和 @return
文档。您可以通过在文档注释中指定 @function
来强制执行此行为。
所以这有效:
/** @namespace */
var util = {
/**
* Repeat <tt>str</tt> several times.
* @function <---- ADDED THIS LINE
* @param {google.maps.Marker} str The string to repeat.
* @param {number} [times=1] How many times to repeat the string.
* @returns {string}
*/
repeat: (function() {
var magicNumber = 1;
return function(str, times) {
if (times === undefined || times < magicNumber) {
times = magicNumber;
}
return new Array(times+1).join(str);
};
}())
};
(如果你问我的话有点乏味。我希望 jsdoc 要么足够聪明以实现它的功能,要么只是信任用户而不必在任何地方添加 @function
。)
在如下代码上运行 jsdoc 时,@param 文档将被忽略。我认为这是因为我在 IIFE 中返回函数,但考虑到这种模式在 JS 中有多常见,我很难相信 jsdoc 无法处理它。
/** @namespace */
var util = {
/**
* Repeat <tt>str</tt> several times.
* @param {google.maps.Marker} str The string to repeat.
* @param {number} [times=1] How many times to repeat the string.
* @returns {string}
*/
repeat: (function() {
var magicNumber = 1;
return function(str, times) {
if (times === undefined || times < magicNumber) {
times = magicNumber;
}
return new Array(times+1).join(str);
};
}())
};
显然,如果 jsdoc 认为记录的项目是 函数 ,它只会包含 @param
和 @return
文档。您可以通过在文档注释中指定 @function
来强制执行此行为。
所以这有效:
/** @namespace */
var util = {
/**
* Repeat <tt>str</tt> several times.
* @function <---- ADDED THIS LINE
* @param {google.maps.Marker} str The string to repeat.
* @param {number} [times=1] How many times to repeat the string.
* @returns {string}
*/
repeat: (function() {
var magicNumber = 1;
return function(str, times) {
if (times === undefined || times < magicNumber) {
times = magicNumber;
}
return new Array(times+1).join(str);
};
}())
};
(如果你问我的话有点乏味。我希望 jsdoc 要么足够聪明以实现它的功能,要么只是信任用户而不必在任何地方添加 @function
。)