Angular 在ng2中编写这个类型脚本lambda的有效方法?

Angular 在ng2中编写这个类型脚本lambda的有效方法?,angular,typescript,Angular,Typescript,我有一个ng2组件,它调用一个服务来获取搜索元数据。因此,我在ng2组件上有一个名为searchMetadata的成员变量。结果集如下所示: var searchMetadata = { Authors = Author[], Titles = Title[] } Author对象有一组完整定义的属性,这些属性描述了FirstName、LastName等作者。我正在使用一个select控件,它需要一个绑定数据集,其中包含{id:123,text:'John Smith'}等对

我有一个ng2组件,它调用一个服务来获取搜索元数据。因此,我在ng2组件上有一个名为searchMetadata的成员变量。结果集如下所示:

var searchMetadata = 
{
   Authors = Author[],
   Titles = Title[]  
}
Author对象有一组完整定义的属性,这些属性描述了FirstName、LastName等作者。我正在使用一个select控件,它需要一个绑定数据集,其中包含{id:123,text:'John Smith'}等对象。因此,我需要在组件上定义一个authors成员变量,并使用lambda将searchMetadata.authors转换为预期的结构。下面是一些黑客代码,它模糊地显示了如何使用C lambda实现这一点:

this.authors = this.searchMetadata.Select(
    x => new {id:x.Id, text:x.FirstName + ' ' + x.LastName});
在ng2中写入此类lambda的正确方法是什么?

请尝试map操作符:

映射运算符允许您从一种类型映射到另一种类型

困难的部分是正确的语法,因为使用{}意味着它是一个多行lambda。。。这不是我们拍摄的目的

在匿名类型周围加上括号似乎就可以了

this.authors = this.searchMetadata.Authors.map(
        x => ( {id:x.Id, text:x.FirstName + ' ' + x.LastName});