私はエラープロパティ '適用' の例として以外のタイプ 'T [K]' 正直に私の主な機能で一般的なことは、関数でなければならないということですか?
const main = <T>(root: T) => <K extends keyof T>(method: K, ...args: any[]) => {
root[method].apply(this, ...args);
};
に存在しませんがあります。
const main = <T>(root: T) => <K extends keyof T>(method: K, ...args: any[]) => {
(<any>root[method]).apply(this, ...args);
};
UPDATE
私はおそらくそう言っていませんでしたが、私はこの例を意味しました...
UPDATE 2
第LEVEL3及び方法LEVEL4/5との通話(のみ) - works perfectly!
Iは、別の種類(数)のLEVEL6追加する場合 - everything collapses :(
が、それは非常にあります興味深い理由は、最初の呼び出しは、すべての時間のエラー?この場合
、あなたはRUNを行った場合 - すべては結果が 'foo' と 'bar' であるが、コンパイラのtypescriptですが、あなたがこれを行うことができ、エラー
ジェネリック関数がまったく必要ないとは思いません。あなたが探しているものは非常に具体的なようです。私が行方不明のものはありますか? –
以下が得られる。 新しい例では、UPDATE 2 –
構造は非常に限定されています。どんな解決策も一般的にするのは意味がありません。あなたはあまりにも多くの作業を終了し、理解しにくく、必要以上に多くのコードを含み、特定の解決策より悪い結果をもたらす解決策に終わるでしょう。このアイデアを放棄することを強くお勧めします。 –