javascript - De ce funcția lambda Typescript se strică din cauza acoladelor?
Am început să dezvolt în Typescript și C# nu de mult, în timp ce anterior cea mai mare parte a dezvoltării mele era cu javascript+php. Dezvolt o aplicație Angular 2 și am creat un serviciu HTTP. Problema despre care discut aici are mai mult legătură cu Typescript decât cu Angular 2.
în următorul cod:
export class HttpRest{
constructor(
private _http: Http,
private userIdsx: UserIds,
private _jsonFormater: JsonFormater
){}
...
getGroupsList(){
return this._http.get('file.json')
.map(res => res.json());
}
...
}
Transmit o funcție lambda anonimă cu o singură declarație și vreau să adaug acolade pentru a crea un scop al funcției, dar când fac asta lucrurile se strică.
Încerc să refactorizez:
.map(res => res.json());
Către :
.map((res) => {
res.json()
});
Așa că aș putea face mai multe operațiuni, dar asta strică codul și duce la o eroare nedefinită pe obiectul JSON care este definit de res.json().
Întrebarea este, de ce adăugarea acoladelor strică această funcție simplă? Nu sunt funcțiile lambda cu acolade de sferă în domeniu o caracteristică încorporată a limbajului?
Răspuns #1
Folosește următorul. Trebuie să returnezi ceva.
.map((res) => {
return res.json()
});
Cu versiunea concisă a corpului (fără acolade), este făcut implicit...
