javascript - 为什么 Typescript lambda 函数会被大括号破坏?

标签 javascript json typescript angular

不久前我开始开发 Typescript & C#,而以前我的大部分开发都是使用 javascript+php。 我正在开发一个 angular 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 对象发生未定义错误。

问题是,为什么添加花括号会破坏这个简单的函数? 带有作用域花括号的 lambda 函数不是语言的内置功能吗?

最佳答案

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

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

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

关于javascript - 为什么 Typescript lambda 函数会被大括号破坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37115696/

相关文章:

ajax - 如何在经典ASP中返回JSON对象

json - 如何使用 JSON HAL 处理嵌套资源?

javascript - tsconfig 中的 `include` 和 webpack 中的 `entry` 字段有什么区别?

Typescript - 当传入多个键值时缩小函数中的 T[K]

php - 使用 Php 从 MYSQL 数据库中提取注释导致意外的 JSON 结果

javascript - 如何使用具有回调的函数来模拟对象?

javascript - Canvas 的 fps 无意中加快了速度?

javascript - jQuery 更改所选选项后刷新选择

typescript - 如何在没有复杂构建系统的情况下将 Vue 与 Typescript 一起使用?

javascript - 使用 Javascript 遍历 sibling 的最快方法是什么?