不久前我开始开发 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/