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

时间:2015-05-03 09:03:42

标签: 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');

3 个答案:

答案 0 :(得分:9)

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:background="@drawable/drop_down"
    android:padding="12dp"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:orientation="vertical"
        android:layout_margin="5dp"
        android:gravity="center_vertical"
        android:textSize="16dp"
        android:text="uyyu"
        android:id="@+id/text"
        android:textColor="#000"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </TextView>
    <ImageView
        android:src="@drawable/spinner_down"
        android:background="@android:color/transparent"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>

答案 1 :(得分:6)

我喜欢的方式:

/**
 * @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;
  }

答案 2 :(得分:1)

这似乎对我有用。

 /**
 * @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;
  }