0
を定義する汎用の基本クラス:活字体Iは、一般的な基本イベントクラスを作成しようとしていますベースのコールバックタイプ
class BaseEvent<T extends { (args?: any[]): void }> {
addEventListener(listener: T): {(): void } {
return() => { };
}
}
私は、コールバックのパラメータを制限指定するために拡張することができます。
class ExtraSpecialEvent
extends BaseEvent<{ (foo: string): void }> {
}
しかし、私は構文を理解しているようです。 Here is a playground demonstrating my problem。
どのようにすればよいでしょうか?
---- UPDATE ---- @ミュラを-kで、以下の答え
として、これは私の質問を尋ねる何ですが、私のジェネリックは、そのは私が意図していないものを、...配列を求めています。私の意図は0以上のany
引数を許可することでした。あなたは配列型として宣言しているargs
class BaseEvent<T extends { (...args: any[]): void }> {
addEventListener(listener: T): {(): void } {
return() => { };
}
}
いいえ、はい、あなたは正しいです。私はこれを答えとしてマークします...それは間違った質問をしていましたが...私は本当に0以上のargsを指定する能力が欲しかった...この答えは私を正しい経路に送りました。 – Lucas
@ルーカスのために、 '...' restパラメータを使うことができます。例についてはこちらをご覧くださいhttp://stackoverflow.com/questions/12697275/open-ended-function-arguments-with-typescript –