在TypeScript中循环访问any类型的数组时访问属性

时间:2018-06-26 16:20:28

标签: angular typescript

数据是对象类型的数组...

{
    id: 1,
    name: 'test'
},
{
    id: 2,
    name: 'test 2'
}

在对数据进行forEach时如何访问element.id?在下面的示例中,它不喜欢element.id。它说属性“ id”在对象类型上不存在。

// Need to make sure this code completes
data.forEach(element => {
    this.myservice.delete(element.id).subscribe();
});

2 个答案:

答案 0 :(得分:1)

要键入一个对象,该对象的结构尚不完全清楚,或者您想以不安全的方式访问它,则应使用any

declare var data: any[];
data.forEach(element => {
    this.myservice.delete(element.id).subscribe();
});

但是在这种情况下,结构是已知的并且非常简单,我实际上会使用适当的类型:

declare var data: Array<{ id: number, name: string}>;
data.forEach(element => {
    this.myservice.delete(element.id).subscribe();
});

答案 1 :(得分:0)

给它一种any

data.forEach(element => {
    this.myservice.delete((element as any).id).subscribe();
});