自定义类型解析问题

时间:2017-07-04 11:14:47

标签: 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){
        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以我用过的方式的另一种方式生成Product数组?

1 个答案:

答案 0 :(得分:1)

此处for (var p in this.formattedProducts){应为for (var p of this.formattedProducts){

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