编写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>
),但在这方面没有找到任何常见做法。
答案 0 :(得分:6)
你想要的是generics。虽然jsdoc doesn't officially support it yet是处理它的正确方法。
正确的方法是:Promise.<number>
。
在我看来,记录Promise.<number, Error>
毫无意义,因为承诺总是拒绝错误 - 指定特定错误的otoh可能有用,但可能有点过分。您的承诺是最终号码的盒装价值。因此,正确的方法是将其记录下来。