jsdoc不信任@param声明

时间:2015-01-02 22:37:09

标签: jsdoc

在如下代码上运行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);
        };

    }())
};

1 个答案:

答案 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。)