我想要一个像这样的功能:
createEntity<TEntity>(): TEntity {
return new TEntity();
}
在C#中,我们可以编写:
void TEntity CreateEntity<TEntity>() where TEntity : new()
如何在TypeScript中做到这一点?
手册中显示的执行此操作的唯一方法是将要初始化的类作为参数发送给factory方法,并使用new关键字描述其构造函数。
function factory<T>(type: { new (): T }): T {
return new type();
}
class SomeClass { }
let result = factory(SomeClass);
该结果将是类型SomeClass的的。
将根据工厂方法中定义的接口对类的构造函数进行类型检查。
如果要初始化在其构造函数中带有参数的类,则必须在提供给factory方法的接口中进行指定。
function factory<T>(type: { new (...args): T }, ...args): T {
return new type(...args);
}
class SomeClass {
constructor(name: string) { }
}
let a = factory(SomeClass, 'John Doe');
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句