如何在函数注释中描述返回的promise?

时间:2014-03-24 12:59:03

标签: javascript annotations promise

编写JavaScript代码时,我总是注释我的函数like described here,例如:

/**
 * Add two values
 * @param {Number} a
 * @param {Number} b
 * @returns {Number} the sum of a and b
 */
function add(a, b) {
  return a + b;
}

现在当我编写一个返回Promise的异步函数时,这将是:

/**
 * Add two values
 * @param {Number} a
 * @param {Number} b
 * @returns {Promise} the sum of a and b
 */
function add(a, b) {
  return new Promise(function (resolve, reject) {
    resolve(a + b);
  });
}

但是现在返回类型(Promise)的描述错过了Promise在解决时将返回什么类型的信息。

如何表示返回的承诺将以Number解决?

我认为Promise.<Number>最好(类似于Array.<Number>),但在这方面没有找到任何常见做法。

1 个答案:

答案 0 :(得分:6)

你想要的是generics。虽然jsdoc doesn't officially support it yet是处理它的正确方法。

正确的方法是:Promise.<number>

在我看来,记录Promise.<number, Error>毫无意义,因为承诺总是拒绝错误 - 指定特定错误的otoh可能有用,但可能有点过分。您的承诺是最终号码的盒装价值。因此,正确的方法是将其记录下来。