如何为返回新类对象的函数指定类型
How to specify a type for a function that returns a new class object
我正在使用谷歌闭包编译器来检查我的javascript代码。我有一个函数,它创建并返回一个新的"类"。也就是说,一个函数返回一个可以应用new的对象,并返回该类的一个"实例"对象。例如,
var newclass = createFactory('Car');
var acar = new newclass();
acar.show(); // executes newclass.prototype.show()
newclass.staticmethod(); // executes newclass.staticmethod()
show和staticmethod是由createFactory
方法创建的。
我有麻烦定义newclass的类型到谷歌闭包编译器,以便它识别newclass作为一个构造函数,它有一个类方法staticmethod
和一个实例方法show
。
我将不胜感激。
假设生成的工厂有一些公共基类或接口(我将使用KnownType)。这应该能奏效:
/** @type {function(new:KnownType)} */
var newClass = createFactory();
这里说的是"newClass"是一个用"new"调用的函数,它返回一个KnownType的实例,在这种情况下,它被声明为不接受任何参数,但是你可以。
CreateFactory
可以声明此类型作为其返回类型,或者在您通常使用类型的任何地方。
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 如何将具有文本类型值的var放入jQuery函数中
- 使用@typedef定义特定的函数类型
- jQuery结合了2个绑定函数(类型错误:a是未定义的)
- 在Javascript中调用对象方法时不是函数类型错误
- 这些函数类型之间有什么区别
- TypeScript-如何定义具有任何类型参数的函数类型
- TypeScript 构造函数类型安全
- 如何将值传递给此函数类型
- 继承和 TypeScript 错误:X 不是构造函数类型
- 如何正确地检测变量类型,并检测比函数类型更多的类型
- ReactJS组件PropTypes——用一组参数指定一个函数类型
- 为什么函数类型有命名参数?他们的目的是什么?
- 作为参数传递的JavaScript函数类型返回undefined
- 所有JavaScript函数类型
- Javascript函数类型错误
- 多态匿名函数类型别名
- 检查变量是否为函数类型
- Javascript将字符串更改为函数类型