为什么Typescript lambda函数被花括号打破?

时间:2016-05-09 12:21:04

标签: javascript json typescript angular

我开始开发Typescript&不久前的C#,而我以前的大多数开发都是用javascript + php。 我正在开发一个角度2应用程序,并创建了一个HTTP服务。 我在这里讨论的问题与Typescript有关,而与angular 2有关。

在以下代码中:

 export class HttpRest{
 constructor(
        private _http: Http,
        private userIdsx: UserIds,
        private _jsonFormater: JsonFormater
 ){}
 ...
 getGroupsList(){
    return this._http.get('file.json')
        .map(res => res.json());
 }
...
}

我传递一个带有单个语句的匿名lambda函数,我想添加花括号来创建一个函数作用域,但是当我这样做时,事情就会被破坏。

我试图重构:

.map(res => res.json());

要:

.map((res) => {
    res.json()
});

所以我可以做更多的操作,但这会使代码失效并导致res.json()定义的JSON对象出现未定义的错误。

问题是,为什么添加花括号会制动这个简单的功能? isn< lambda函数与范围花括号是语言的内置特征吗?

1 个答案:

答案 0 :(得分:2)

使用以下内容。你需要归还一些东西。

.map((res) => {
  return res.json()
});

使用简洁的正文版本(没有大括号),它隐含地完成了......