このファイルを考えると
/*
* 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;
});
しかし、それでも実際には機能しません。
ドキュメントが 2 回挿入されます。1 つではなく 2 つの関数が文書化されています。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;
上記で、関数が exports オブジェクトの匿名値にならない理由を理解していただければ幸いです。