reactjs - Typescript:在匿名函數中找不到名稱 argument
這段程式碼會產生 TS 錯誤:找不到名稱 c。
我想呼叫匿名函數 b,但無法存取匿名函數的參數 c。
function fn(a: number, b: (c: number) => void) {
b(c);
}
答案#1
你誤解了傳入的參數。部分 (c: number) => void 是一種類型,它並不意味著 c 是單獨的參數。你可以將其重寫為。
function fn(a, b) {
b(c);
}
const c = 1234;
function test(cParam) {
console.log(cParam);
}
fn(1, test.bind(c));所以在這裡,b 是函數 test,它接受一個輸入參數。我們可以使用 .bind(c) 讓 JavaScript 知道,當函數 fn 內的 b 變數執行時,我們應該將第一個參數視為 c。
答案#2
嗯,當你調用 fn 時,你不會傳入一個帶參數的函數。你會傳入對另一個函數的引用。例如:
fn(21, myOtherFunction)因此,像這樣的東西是可行的:
const fn = (a: number, b: (c: number) => void) => {
b(a);
}
改為將你認為的 c 當作你的第一個參數傳入。
