在如下代码上运行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);
};
}())
};
答案 0 :(得分:1)
如果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
。)