Typescript将对象强制转换为忽略属性的类

时间:2020-03-10 18:24:42

标签: angular typescript

我有一个要从webapi调用中投射的对象。

所以可以说这是来自webapi的数据

let userTestStatus: { id: number, name: string }[] = [
    { "id": 0, "name": "Available", "date" : "01/01/2001" },
    { "id": 1, "name": "Ready", "date" : "01/01/2001" },
    { "id": 2, "name": "Started", "date" : "01/01/2001" }
];

这是我的打字稿课。如您所见,没有日期属性

export myClass{
  id: number;
   name: string;
}

当对象被转换时,date属性存在,即使它在我的班级中不存在。如何获取打字稿来忽略类中不存在的属性?

2 个答案:

答案 0 :(得分:1)

您可以将所有对象仅映射到您想要的模型上

const myModelObejctsArray: MyModel[] = userTestStatus.map(user => {
   return {
    id: user.id,
    name: user.name
   }
})

答案 1 :(得分:0)

您的数据符合给定的类型接口。 但是,您的数据具有比声明为类型更多的属性。

您的Typescript IDE应该向您显示一些消息,表明数组中的对象没有专门的date属性。但是您仍然可以运行它。

如果您不想在数组元素中使用date属性,则可以自行删除它:

userTestStatus.forEach(e => delete e.date);