Javascript 为什么Typescript lambda函数会被大括号打断?
不久前,我开始开发Typescript&C,而以前我的大部分开发都是使用javascript+php。 我正在开发angular 2应用程序,并创建了一个HTTP服务。 我在这里讨论的问题更多地与Typescript有关,而不是angular 2 在以下代码中:Javascript 为什么Typescript lambda函数会被大括号打断?,javascript,json,typescript,angular,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
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());
致:
因此,我可以执行更多操作,但这会停止代码并导致由res.JSON()定义的JSON对象上出现未定义的错误
问题是,为什么添加花括号会阻止这个简单的功能?
具有范围花括号的lambda函数不是该语言的内置功能吗?使用以下方法。你需要归还一些东西
.map((res) => {
return res.json()
});
使用简明的正文版本(没有花括号),它是隐式完成的…感谢这解决了它,我没有意识到返回值也可以隐式推断,在我看来这是一个糟糕的做法。
.map((res) => {
return res.json()
});