インスタンスではなく抽象クラスを拡張するクラスを格納するために、抽象クラスの指示を出したいと思います。しかし、私は問題があります。TypeScriptの抽象クラスの指示
abstract class AbstractClass{
foo(){
// do someThing
}
}
class ConcreteClass extends AbstractClass{
foo(){
super.foo()
}
}
interface ClassDicctionary {
[index:string]: typeof AbstractClass
}
let dicctionary : ClassDicctionary = { "ONE" : ConcreteClass }
new dicctionary["One"]().foo() // Error. It can´t instance a abstrac class (of course)
私はこれをどうやって得ることができると思いますか?
私はそれが必要なので、AbstractClassから抽象修飾子を削除したくありません。これは異なっており、それがどのように動作するか、なぜ代わりに定型を追加する
は、あなたが説明する必要があります。 – SLaks
迅速な対応をありがとう。それは良い解決策と思われるが、私は、コンストラクタ コンストラクタ(FOO:文字列)を変更した場合: [インデックス:文字列]:{ } を私はこのmodiftyしなければならない新しい(... argsを)=> AbstractClassを。 // <--- 子クラスを持つパラメータの数がわからないため、このコードにはエラーが表示されません。 新しいdicctionary ["One"]()。foo(); //引数はありませんが、¿ok? –
あなたはどのクラスを構築しているのか分からないので、 '... args'の代わりに(あなたの場合は0個の引数を使って)呼び出すための構造署名を書くべきです。 –