2017-08-14 10 views
0

フローのクラス型は常にそのクラスのインスタンスを参照し、typeofを使用して実際のクラス自体を参照するように見えます。私は変数は、基本クラスのサブクラス(インスタンスではなく)を参照したいのであれば、私が行うことができます。

class MyBaseClass {} 
class MySubClass extends MyBaseClass {} 
let a: $Subtype<MyBaseClass> = MySubClass; // fails 
let b: $Subtype<MyBaseClass> = new MySubClass(); // works, but I don't want this. 
let c: $Subtype<typeof MyBaseClass> = MySubClass; // works! Ok, we're good 

しかし、私は型パラメータでこれを行うように見えることはできません!たとえば、次のよう:私は、次の活字体のトリックを(Generic and typeof T in the parametersを参照)しようとした場合

type GenericSubclass<T> = $Subtype<typeof T>; 
// fails with `^ identifier `T`. Could not resolve name` 

、それも失敗:私はnew__proto__constructorを試してみました

type ValidSubclass<T> = { new(): T }; 
const c: ValidSubclass<BaseClass> = MySubClass; 
// fails with: property `new`. Property not found in statics of MySubClass 

注意を。

何がありますか?回避策はありますか?

答えて

1
typeof MyBaseClass 

はそうあなたが

type GenericSubclass<T> = $Subtype<Class<T>>; 
を行うことができます

Class<MyBaseClass> 

です

関連する問題