Funcții lambda TypeScript cu parametri opționali


Am probleme atunci când definesc o funcție lambda care acceptă un parametru opțional. Partea ciudată este că dacă folosesc sintaxa completă „function”, funcția anonimă funcționează, dar sintaxa prescurtată lambda/săgeată produce erori precum următoarele:

  • Numele 'a' nu există în domeniul de aplicare curent
  • Parametrii furnizați nu corespund niciunei semnături a țintei apelului
  • Se aștepta ')'

Exemplu :

(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

Răspuns #1

Aceasta este o eroare în compilator și se corectează chiar acum [v0.8]. Lambda-urile dau în prezent mesaje de eroare cu parametri opționali și rest. Vă rugăm să folosiți sintaxa lungă a funcției dacă aceasta este o problemă care blochează.

Răspuns #2

În prezent există un bug cu adnotarea parametrului opțional în expresiile lambda cu săgeată groasă.