簡體   English   中英

為什么Typescript lambda函數會被花括號破壞?

[英]Why does Typescript lambda function gets broken by curly braces?

我不久前開始開發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()
});

使用簡潔的正文版本(不帶花括號),隱式完成了...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM