奇妙なタイトルのため申し訳ありませんが、私は1つの文で何をしようとしているのかをよくわかりません。クラスデコレータ、クラスが拡張されて他のクラスを実装していることを確認する方法
私は、この1つのクラスからすべて拡張し、この他のクラスを実装するクラスの束を定義する必要があります。
class SoulCoughing extends Super implements BonBon { /.../ }
class MoveAside extends Super implements BonBon { /.../ }
class LetTheManGoThru extends Super implements BonBon { /.../ }
私はこれらのクラスのデコレータとして使用する一種のラッパー関数を書いています。
const Eminem = function(klass: Constructable<????>) {
const instance = new klass();
// Do stuff
}
Constructable
そう活字体がコンストラクタを持っていないというエラーがスローになるので私が使用している少しのインタフェースです。
interface Constructable<T> {
new(): T;
}
は今ここに私の問題があり、私は私のラッパー関数のパラメータklass
に割り当てるどのタイプか分かりませんか?私はこれをやって試してみました:
... function(klass: Contrusctable<Super & BonBon>)
と、この:
... function(klass: Contrusctable<Super | BonBon>)
私も、このように私の構築可能インターフェースの変更を試みた:
を私はArgument of type 'typeof SoulCoughing' is not assignable to parameter of type 'Constructable<everythingIveTriedSoFar>'
エラーを取得しておきます。
私の質問は、どのタイプ定義をパラメータklass
とともに使用すべきですか? any
を使うことができますが、渡されるクラスがSuper
に拡張され、BonBon
が実装されていることを確認したいと思います。