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