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

ドキュメントが 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 オブジェクトの匿名値にならない理由を理解していただければ幸いです。

4

1 に答える 1

2

@exports1つのタグを設定してみて@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 に答える