如何使用JSDoc记录函数返回的函数

Ami*_*ein 22 javascript jsdoc jsdoc3

我正在使用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');
Run Code Online (Sandbox Code Playgroud)

小智 13

这似乎对我有用。

 /**
 * @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;
  }
Run Code Online (Sandbox Code Playgroud)


SGD*_*SGD 10

您可以记录内部函数,然后像这样引用它

/**
 * @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;
}
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法为匿名内部函数执行此操作? (6认同)
  • 如果您使用箭头功能,有没有办法做到这一点?例如:`many_prompts = count => prompt => ...` (6认同)
  • 官方记录在任何地方吗?找不到。 (2认同)
  • VS Code 似乎无法识别这一点。 (2认同)

Ami*_*ein 9

我喜欢的方式:

/**
 * @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;
  }
Run Code Online (Sandbox Code Playgroud)

  • “promt”似乎拼写错误。 (4认同)
  • 有这方面的文档吗? (2认同)