Аннотировать частную функцию в закрытии - PullRequest
1 голос
/ 08 марта 2012

Как бы я аннотировал эту закрытую функцию, называемую bar, внутри замыкания?

var Foo = (function() {
    var fn = (function() {
        return {
            bar: function(baz) {
                alert(baz);
            }
        };
    })();
    return {
        doBar: function(label) {
            fn.bar(label);
        }
    }
});

Как так?

/**
 * @type {function(string): string}
 * @private
 */
bar: function(baz) {
    return baz;
}

Или вот так?

/**
 * @param {string}
 * @private
 * @return {string}
 */
bar: function(baz) {
    return baz;
}

Или даже комбинация обоих документов? Но тогда я бы продублировал информацию для параметра функции и типа возврата, я думаю.

/**
 * @param {string}
 * @private
 * @type {function(string): string}
 * @return {string}
 */
bar: function(baz) {
    return baz;
}

Полный пример jsDoc для всего примера закрытия. Для приватных функций больше нет @private jsDoc (как сказал «Джон»).

/**
 * @type {function(): Object}
 * @public
 */
var Foo = (function() {
    /**
     * @type {function(): Object}
     * @private
     */
    var fn = (function() {
        return {
            /**
             * @param {string} baz Something to alert
             */
            bar: function(baz) {
                alert(baz);
            }
        };
    })();
    return {
        /**
         * @param {string} label A label string
         * @public
         */
        doBar: function(label) {
            fn.bar(label);
        }
    }
});
...