我有一个JSON源数组,所有值都是字符串。我试图将它转换为另一个类型化对象数组。我遇到错误。如何正确地编写此代码?谢谢。
错误1:转换类型"{ Id:字符串;公司名称:string;...)[]“转换为类型”Dest“可能是错误的,因为这两种类型都没有与另一种类型充分重叠。如果这是有意的,请先将表达式转换为”unknown“。
错误2:../网格秒分量ts:12:10 -错误TS 2740:类型“Dest”缺少类型“any[]”的以下属性:length、pop、push、concat等26种类型。12公共网格数据:任意[] =目的地;
export const source = [{
'Id': 'ALFKI',
'CompanyName': 'Alfreds Futterkiste',
'DOB': '01/31/2000' // may not exists
}, {
'Id': 'ANATR',
'CompanyName': 'Ana Bokov Emparedados y helados',
},
export class Dest{
public Id: string = "";
public CompanyName: string = "";
public DOB?: Date
}
export const destination = <Dest>source; // Error 1.
在Angular 分量中:
public gridData: any[] = destination; // Error 2.
2条答案
按热度按时间umuewwlo1#
您可以将构造函数添加到类中,并使用map创建它的示例:
如果你真的不需要一个类,也不想玩
new
-你可以使用接口或类型,但无论如何,你需要将字符串DOB转换为日期DOB:Playground:单击
ekqde3dh2#
我喜欢使用
Object.assign()
来实现这个目的,通常我在RXJS Map中这样做,作为从服务器获取数据的一部分。但是,您也可以使用array map函数:
尽管如此,根据您的代码,对于硬编码数组,我可能会直接创建值作为数组创建的一部分,而不是稍后处理它: