1

鉴于此文件

/*
 * 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. 我能得到的最好的结果是它显示为一个全局函数,这显然不是我想要的。想法?

jsdoc

我试过这个似乎遵循文档

"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;
});

但即使这样也行不通。

jsdocs 输出 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;

希望您能在上面看到为什么函数不能是导出对象的匿名值。

4

1 回答 1

2

尝试设置一个@exports标签并@memberOf在类型定义中

define(/** @exports stuffutils */
    function() {
    /**
     * @callback GetStuffCallback
     * @memberOf module:stuffutils
     * @param {String[]} array of stuff
     *        Will be empty if no stuff.
     */

    /**
     * Gets the stuff.
     * @param {module:stuffutils.GetStuffCallback} callback function to call with
     *        stuff.
     */
    var getStuff = function(callback) {
        foobar(callback);
    };

    return {
        getStuff: getStuff
    };
});

您必须在 @param 字段中拼出名称空间,否则将没有链接。

于 2014-07-01T12:18:33.240 回答