に関数配列を渡します動作するようです。私は何も起こらない、このように私のコードをしようとした場合私は別の関数で、それに機能を追加している私は、この</p> <pre><code>private listeners: ((name: string) => void)[] = []; </code></pre> <p>のような機能の配列を持っている私は、活字体/ JavaScriptの</p> <p>に問題がbutton.onclick機能
は今、私はボタンが
button.onclick = function(){
this.listeners.forEach((callback) => callback(username));
}
を押された場合、これらの関数を呼び出したい、私はそれがlisteners
を知らないので、それがある賭けます。プロパティ 'のforEach' タイプに存在しません 'のMouseEvent':
私の次の試みは
button.onclick = function(listeners){
listeners.forEach((callback) => callback(username));
}
今TSCは
エラーTS2339は私に語りました。
は、私はここにタイプを欠けている賭けが、この配列は、誰かが迅速な回避策を知っている場合((name: string) => void)[] = [];
はクールになるタイプの関数の配列があることを彼に伝えるためにどのようにIDKの。 質問をする前に:私の関数が配列に関数を追加したと確信しています(少なくともlisterns
のサイズが大きい関数を追加した場合):D
オブジェクトを記述する必要がありますが、それは何かわかりません。 'this'は要素自体への参照になり、関数のパラメータはイベントオブジェクトを受け取るため、あなたの推測は機能しません。あなたはこの問題の完全ではあるが最小限の例を私たちに与えることができます。 –
「何も起こらない」とはどういう意味ですか?私はそれがコンソールエラーを生成すると仮定 - あなたはそれを見ましたか? –