鉴于此文件
/*
* comments
*/
"use strict";
/** @module stuffutils */
define(function() {
/**
* @callback GetStuffCallback
* @param {String[]} array of stuff
* Will be empty if no stuff.
*/
/**
* Gets the stuff.
* @param {GetStuffCallback} callback function to call with
* stuff.
*/
var getStuff = function(callback) {
foobar(callback);
};
return {
getStuff: getStuff,
};
});
我没有从 JSDoc 获得任何文档。它创建一个module-stuffutils.html
但文件基本上是空的。
我在函数文档中尝试/** @exports getStuff */
了定义之上,定义之下。我尝试了各种形式的@static
, @alias
, @public
. 我能得到的最好的结果是它显示为一个全局函数,这显然不是我想要的。想法?
我试过这个似乎遵循文档
"use strict";
/** @module stuffutils */
define(
/** @exports stuffutils */
function() {
/**
* @callback GetStuffCallback
* @param {String[]} array of stuff
* Will be empty if no stuff.
*/
/**
* Gets the stuff.
* @param {GetStuffCallback} callback function to call with
* stuff.
*
*/
var getStuff = function(callback) {
foobar(callback);
};
var exports = {
/** @function */
getStuff: getStuff,
};
return exports;
});
但即使这样也行不通。
文档被插入两次。记录了两个函数而不是一个。GetStuffCallback
没有记录。我无法移动 的定义,getStuff
因为其他函数使用它。换句话说,如果我只是将其设为分配给的对象的匿名函数,exports
我将无法从该模块中调用它。我的意思的例子
/**
* parse url query key=values into an object
* @param {string} url string with query eg `http://foo.com/?a=1&b=2
* @returns {object} object of key values. eq `{a:"1",b:"2"}`
*/
var parseQueryString = function(url) {
...
}
/**
* parse current url into object with key/values.
* (eg. if the current URL is `http://foo.com/?a=1&b=2` this function
* will return {a:"1",b:"2"})
* @returns {object} object of key values. eq `{a:"1",b:"2"}`
*/
var parseCurrentLocationQuery = function() {
return parseQueryString(window.href.location);
};
var exports = {
parseQueryString: parseQueryString,
parseCurrentLocationQuery: parseCurrentLocationQuery,
};
return exports;
希望您能在上面看到为什么函数不能是导出对象的匿名值。