我有一个这样定义的类型产品:
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数组?
答案 0 :(得分:1)
此处for (var p in this.formattedProducts){
应为for (var p of this.formattedProducts){
目前,您迭代使用formattedProducts数组对象的属性,并且每个p
都是属性名称