从类类型中获取正确的实例类型时,如下所示:
type Constructor<T = {}> = new (...args: any[]) => T
class Foo {}
function getInstanceFromClass<T>(Klass: Constructor<T>): T {
return new Klass()
}
// $ExpectType Foo
const fooInst = getInstanceFromClass(Foo)
我不知道如何使用新的 TS 3.0 功能(通用休息参数)获得正确的实例类型
class Foo {}
class Test {}
function getInstancesFromClasses<T extends Constructor[]>(...klasses: T): T {
return klasses.map(klass => new klass()) as any
}
// $ExpectType [typeof Foo, typeof Test]
const instances = getInstancesFromClasses(Foo,Test)
but what I need is
// $ExpectType [Foo, Test]