本文内容如下
泛型接口 + 泛型函数,泛型工厂函数
如果你都有了答案,可以忽略本文章,或去TS学习地图寻找更多答案
简单知识
class CommercialBank {
static count: number
constructor(public name: string) { }
}
1. 当做 类构造函数对象变量 使用
CommercialBank.count
2. 当做 创建类对象的类型 使用
let c = new CommercialBank('农业银行')
工厂函数
type constructorType = new (...arg: any) => any
function createInstanceFactory(Constructor: constructorType) {
console.log(Constructor.name)
return new Constructor('工商银行')
}
let result = createInstanceFactory(CommercialBank)
console.log(result);
泛型工厂函数
createInstanceFactory调用时,传递CommercialBank泛型给constructorType,constructorType最终返回CommercialBank类型
type constructorType<T> = new (...arg: any) => T
function createInstanceFactory<T>(Constructor: constructorType<T>) {
console.log(Constructor.name)
return new Constructor('工商银行')
}
let result = createInstanceFactory<CommercialBank>(CommercialBank)
console.log(result.name);
学习更多
TS学习地图
|