务必注意:Typescript中类也是一个构造函数【可以new】但是有时候针对不确定的类型需要as转换一下 才能new
class Test {
}class Test01 extends Test {a = 1
}function ok<T extends typeof Test>(asyncClass: T): T {/*** 1. 这里的T是一个【类的类型】*/return asyncClass
}console.log(new ok(Test01)) // 报错【这里必须as具体类型】console.log(new (ok(Test01) as typeof Test01)) // 正确// Retrieve the class type
const Test01Class = ok(Test01) // 分开第一步
// Create an instance of the retrieved class
const testInstance = new Test01Class() // 分开第二步【正确】console.log(testInstance instanceof Test01) // true
console.log(testInstance.a) // 1