7

如何记录作为参数传递的构造函数(函数)?

例子:

/** @class */
function A() {}

/**
 * @param {Function} aConstructor
 */
function createA(aClass) {
    return new aClass();
}

如您所见,我可以指定它是一个函数。但是,我无法指定该函数将创建哪个对象。有什么方法可以记录这个吗?

谢谢。

4

2 回答 2

9

谷歌的闭包提出了一个 {function(new:type)} 作为类型描述。我假设,可以使用这样的东西(我在 AMD 中使用它):

 /** @param {function(new:ClassOrInterfaceName)} aClass */

您可以在此处找到更多信息:http: //google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml#JavaScript_Types

我希望,我的回答可以帮助别人)

于 2014-02-13T15:29:23.153 回答
0

正如评论中所讨论的,我会提出请求,因为在我看来它不支持该功能。使用instanceof的方式,“Function”是目前最接近于表示构造函数的对象实例。如前所述,@constructs@returns可能能够帮助您指示输出,但不能指示参数输入。

于 2013-06-16T12:22:35.503 回答