web-dev-qa-db-ja.com

JSDocを使用して関数から返された関数を文書化する方法

パラメータドキュメントにJSDocを使用しています。

many_promptsのパラメーター型を文書化する方法は明らかですが、それが返す関数を文書化する正しい方法は何ですか?

/**
 * @param {Number} - number of times to Prompt
 * @return {Function(Prompt{Number})} - the returned function
 */
function many_prompts(count) {
  return function(Prompt) {
    for(var i=0; i < count; i++) alert(Prompt);
  }
}


//Example of use:
var y  =many_prompts(3);
y('Hello World');
26

内部関数を文書化して、そのように参照できます

/**
 * @param {Number} - number of times to Prompt
 * @return {many_prompts~inner} - the returned function
 */
function many_prompts(count){
  /**
   * My inner function
   *
   * @param {object} Prompt Some parameter
   */
  var inner = function(Prompt){
    for(var i=0;i<count;i++) alert(Prompt}
  };
  return inner;
}
10
SGD

これは私のために働いているようです。

 /**
 * @param {Number} count - number of times to Prompt
 * @return {function(): void} - the returned function
 */
  manyPrompts(count) {
      /**
       * My inner function
       *
       * @param {object} Prompt Some parameter
       */
      const inner = function(Prompt) {
        for (let i=0; i < count; i++) {
          alert(Prompt);
        };
      };
      return inner;
  }
3
gforceg

私が好む方法:

/**
 * @param {number} count - number of times to Prompt
 * @returns { (promt:string) => void } - the returned function
 */
  manyPrompts(count) {
      /**
       * My inner function
       *
       * @param {object} Prompt Some parameter
       */
      const inner = function(Prompt) {
        for (let i=0; i < count; i++) {
          alert(Prompt);
        };
      };
      return inner;
  }