使用构造函数扩展泛型
Extending a generic type with a constructor function
如何在 Typescript 中使用构造函数扩展泛型类型?
function doSomething<T extends ?constructor?>(constructor: T) {
...
}
你可以这样做:
type Constructor = new (...args: any[]) => any;
class Base {
baseProp = 'base value';
}
function doSomething<T extends Constructor>(constructor: T) {
return class extends constructor {
factoryProp = 'factory prop';
}
}
const DerivedClass = doSomething(Base);
const instance = new DerivedClass;
console.log(instance.baseProp);
console.log(instance.factoryProp);
如何在 Typescript 中使用构造函数扩展泛型类型?
function doSomething<T extends ?constructor?>(constructor: T) {
...
}
你可以这样做:
type Constructor = new (...args: any[]) => any;
class Base {
baseProp = 'base value';
}
function doSomething<T extends Constructor>(constructor: T) {
return class extends constructor {
factoryProp = 'factory prop';
}
}
const DerivedClass = doSomething(Base);
const instance = new DerivedClass;
console.log(instance.baseProp);
console.log(instance.factoryProp);