我有麻煩打字稿/ JavaScript的傳遞一個函數陣列的函數button.onclick
我的功能這樣
private listeners: ((name: string) => void)[] = [];
我添加功能,以它在另一個函數的陣列似乎工作。
現在我要調用這些函數,如果一個按鈕被按下
button.onclick = function(){
this.listeners.forEach((callback) => callback(username));
}
如果我盡我的代碼這種方式沒有任何反應,我敢打賭,這是因爲它不知道listeners
。
我的下一個嘗試是
button.onclick = function(listeners){
listeners.forEach((callback) => callback(username));
}
現在TSC告訴我
錯誤TS2339:房產 '的forEach' 不上鍵入「MouseEvent的存在。
我敢打賭,我在這裏缺少一個類型,但IDK的如何告訴他,這是數組類型的函數數組如果有人知道一個快速的解決方法((name: string) => void)[] = [];
會很酷。 之前你問:我敢肯定,我的功能增加了我的陣列功能(至少在添加功能的大小listerns
變大):D
您必須描述一些對象,但我們不知道它是什麼。你的猜測並沒有解決,因爲'this'將是對元素本身的引用,你的函數參數接收事件對象。所以,也許你可以給我們一個完整而簡單的例子。 – 2016-08-05 13:55:58
你什麼意思是「什麼都沒有發生」?我認爲它會產生一個控制檯錯誤 - 你看它嗎? – 2016-08-05 19:31:04