我有一个返回构造函数的javascript函数(见下面的代码示例)。我如何用jsdoc的@returns标记来记录这一点。使用@returns {MyConstructor}似乎不正确,因为这意味着我返回的是“MyConstructor”的示例,而不是构造函数本身,对吗?
function MyConstructor() {
var self = this;
self.myFunction = function() {
return true;
};
self.getMyFunctionResult = function() {
return self.myFunction();
};
}
/**
* @returns {?} A constructor that will be instantiated
*/
function getConstructor() {
return MyConstructor;
}
var constructor = getConstructor();
var instance = new constructor();
4条答案
按热度按时间rqqzpn5f1#
我不认为有一种方法可以使用
@returns
后面的方括号来记录返回一个 specific 示例。方括号中的内容总是被解释为 type。也就是说,有一种方法可以记录一个类型的特定示例被返回,通过记录示例并使用示例的链接。我已经将问题中的代码缩短到必要的要点来说明:它也可以用类以外的其他东西来完成:
据我所知,这是jsdoc 3中最好的。
mnowg1ta2#
也许有点晚,但我有问题,以找到适当的答案为您的问题活动今天。
当我尝试在WebStorm上自动生成JSDoc时,得到的结果如下:
返回类型定义仍然很奇怪,但构造函数注解可能会满足这个目的。
4xrmg8kj3#
您可以使用以下命令检查函数返回的类型:
文件中写道:
http://usejsdoc.org/tags-returns.html
在你的例子中,它将是:
或者,如果要创建Item的示例:
du7egjpx4#
您可以用途:
这将返回对象转换为创建MyConstructor类型的匿名构造函数。
你可以很灵活地将它与&结合起来,以塑造构造函数的外观(如果你有想要访问的静态方法)以及构造函数创建的内容(如果你有要放在工厂中的部分)