Javascript 自定义类型解析问题

Javascript 自定义类型解析问题,javascript,angular,Javascript,Angular,我的产品类型定义如下: export class Product { id: number; //other fields } 组件中的变量formattedProducts: formattedProducts: Product[] = []; 我想在此处更新此变量: refreshSummary(product: Product): void{ var found = false; for (var p in this.formattedProducts){

我的产品类型定义如下:

export class Product {
  id: number;
  //other fields
}
组件中的变量formattedProducts:

  formattedProducts: Product[] = [];
我想在此处更新此变量:

refreshSummary(product: Product): void{
    var found = false;
    for (var p in this.formattedProducts){
        console.log('parsing product summary', p);
        if (p.id == product.id){
          // we update
          console.log('updating product')
          found = true;
          break;
        }
    }
我的问题是我有调试器错误:

Property 'id' does not exist on type 'string'
发生在我的“p.id”上。我的变量this.formattedProducts是一个Product数组,所以我不知道如何将其解释为字符串。 是否可以强制定义我的变量p的类型,或者以我使用的另一种方式使我的formattedProduct成为产品数组?

此处
for(此.formattedProducts中的var p){
应该是
for(此.formattedProducts的var p){


目前,您正在迭代formattedProducts数组对象的属性,并且每个
p
都是属性的名称

做得好,我会尽快接受您的答案!使用let或const代替var。