2017-10-12 136 views
1

我想將一個lambda傳遞給一個函數,但需要一個具有一個參數的lambda。根據需要,TypeScript會拋出一個錯誤,如果我將兩個參數傳入lambda,但不會抱怨,如果我省略了lambda中的任何參數。我怎樣才能讓TypeScript需要傳遞一個參數lambda?我可以做一個lambda參數嗎?

function foo(fn: (x) => any) { } 

foo(() => "bla");  // Bad, but no error 
foo((x) => "bla"); // Good, no error 
foo((x, y) => "bla"); // Bad, with error 
+0

'()=>「bla」'可分配給'(x)=> any'。實際上,即使存在限制,它仍然不能強制使用該參數進行反對的函數。 – zerkms

回答

3

你不能,語義,x => "bla"() => "bla"完全一致。他們都完全忽略了第一個參數(以及所有其他參數)

通過詢問(x) => any lambda,您基本上會說:「我想要一些可以用一個參數調用的東西」,() => "bla"符合法案,(x, y) => "bla"不。

相關問題