在TypeScript中,我可以将变量的类型定义为类的类型。例如:
现在我想要将它与一个通用类一起使用,类似于这样:
class MyClass { ... }
let myVar: typeof MyClass = MyClass;
现在我想要将它与一个通用类一起使用,类似于这样:
class MyManager<T> {
constructor(cls: typeof T) { ... }
/* some other methods, which uses instances of T */
}
let test = new MyManager(MyClass); /* <MyClass> should be implied by the parameter */
因此,我想给我的管理器类另一个类(它的构造函数),因为管理器需要检索与该类相关的静态信息。
当编译我的代码时,它说找不到名称'T',其中我的构造函数在。
有任何解决办法吗?
{ new(): T }
这个东西并不是那么显然,特别是因为构造函数被定义为constructor()
,我们更倾向于期望像T
,typeof T
或者其他的东西。 - Simonlet test = new MyManager(Array<MyClass>);
或者...MyManager(MyClass[]);
? - GFoley83constructor(cls: MyClassConstrcutor<T>[])
- Nitzan Tomerconstructor(cls: { new (...args: any[]): T } [])
。 - GFoley83