Как бы я аннотировал эту закрытую функцию, называемую 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);
}
}
});