4

オプションのパラメーターを受け入れるラムダ関数を定義するときに問題が発生します。奇妙な部分は、完全な「関数」構文を使用すると無名関数は機能しますが、ラムダの短縮/矢印構文では次のようなエラーが発生することです。

  • 名前'a'は現在のスコープに存在しません
  • 提供されたパラメータがコールターゲットのどのシグニチャとも一致しません
  • 期待される ')'

例:

(function (a, b?) => { console.log(a, b); })("a"); // OK
((a, b?) => { console.log(a, b); })("a", "b");     // Errors
((a, b) => { console.log(a, b); })("a", "b");      // OK
4

2 に答える 2

9

これはコンパイラのバグであり、現在修正中です[v0.8]。Lambdasは現在、オプションのパラメーターとRESTパラメーターを含むエラーメッセージを表示します。これがブロッキングの問題である場合は、long関数構文を使用してください。

于 2012-10-06T21:26:40.600 に答える
3

現在、ファットアローラムダ式のオプションのパラメーターアノテーションにバグがあります。

于 2012-10-06T21:25:07.510 に答える