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

Angular 将对象强制转换为类的Typescript忽略属性,angular,typescript,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

我试图从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属性在我的类中不存在,它也存在。如何让typescript忽略类中不存在的属性?

您的数据满足给定的类型接口。 但是,数据的属性甚至比作为类型声明的属性还要多

Typescript IDE应该向您显示一些消息,表明数组中的对象没有特定的日期属性。但你仍然可以运行它

如果不希望数组元素中包含date属性,可以自行删除它:

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

您的数据满足给定的类型接口。 但是,数据的属性甚至比作为类型声明的属性还要多

Typescript IDE应该向您显示一些消息,表明数组中的对象没有特定的日期属性。但你仍然可以运行它

如果不希望数组元素中包含date属性,可以自行删除它:

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

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

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

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

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

我想使用
Array.prototype.map()
可以重新构造数组。强制转换是typescript的功能。它在运行时不起作用,只在编译时起作用。铸造的目的是帮助你避免错误,而不是变异data@JuliusDzidzevičius那么我们可以用什么来变异数据呢?我想用
Array.prototype.map()
可以重新构造数组。强制转换是typescript的特性。它在运行时不起作用,只在编译时起作用。铸造的目的是帮助你避免错误,而不是变异data@JuliusDzidzevičius那么我们可以用什么来改变数据呢现在,如果数据是动态的,从webapi传入呢?我们如何删除或忽略typescript类中不存在的属性?几乎所有情况下,您都会像@Stefan的答案一样构建数据。因为您不能显式删除您不知道实际存在的内容。现在,如果数据是从webapi传入的动态数据,该怎么办?我们如何删除或忽略typescript类中不存在的属性?几乎所有情况下,您都会像@Stefan的答案一样构建数据。因为你不能明确地删除一些你不知道的东西,这是我喜欢的。这正是我需要的,我喜欢。这正是我需要的