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