如何记录作为参数传递的构造函数(函数)?
示例:
/** @class */
function A() {}
/**
* @param {Function} aConstructor
*/
function createA(aClass) {
return new aClass();
}
如您所见,我可以指定它是一个函数。但是,我无法指定该函数将创建哪个对象。有没有办法记录这个?
感谢。
答案 0 :(得分:9)
谷歌及其闭包提出了{function(new:type)}作为类型描述。 我假设,人们可以使用这样的东西(我在AMD上使用它):
/** @param {function(new:ClassOrInterfaceName)} aClass */
您可以在此处找到更多信息:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#JavaScript_Types
我希望,我的答案可以帮助某人)
答案 1 :(得分:0)
正如评论中所讨论的,我提交了一个请求,因为在我看来它并不支持该功能。使用instanceof的方法,“Function”在表示构造函数的对象实例时最接近。如上所述,@constructs或@returns
可以帮助您指示输出,但不能指示参数输入。