TypeScript'te constructor türünü çıkar
TypeScript'te bir sınıfın yapıcı türünü çıkarmak mümkün mü? Bunu denedim ama işe yaramıyor gibi görünüyor:
type Constructor<K> = K extends { new: infer T } ? T : any;
Cevap #1
Bir sınıf türünden örnek türünü çıkarmanıza olanak tanıyan, InstanceType adı verilen önceden tanımlanmış bir koşullu tür zaten vardır.
class A { private x: any}
type AInstance = InstanceType<typeof A> // same as A
Bu türün tanımı şudur:
type InstanceType<T extends new (...args: any) => any> = T extends new (...args: any) => infer R ? R : any;
Cevap #2
Bunu çıkarmaya çalışmak yerine, sınıf türlerine yapılandırıcı fonksiyonlarıyla bu şekilde başvurabilir misiniz?
type Constructor<K> = { new(): K };
const x: Constructor<String> = String;
const s = new x();
