我试图长时间解决这个问题。编译器显示错误,但如果我重新编译,程序仍然可以正常运行。帮助克服错误。
错误:
类型'{} []'不能分配给'ShoppingCartItem []'类型。类型 “{}”不能分配给“ShoppingCartItem”类型。 “{}”类型中缺少“属性'产品”。
我的服务
async getCart():Promise
我的课程和界面 <Observable<ShoppingCarts>>
{
let cartId = await localStorage.getItem('cartId')
return this.shoppingCartCollection.doc(cartId).collection('items').valueChanges()
.map(data => new ShoppingCarts(data))
}
<Observable<ShoppingCarts>>
产品界面
export interface ShoppingCartItem{
product:Product;
quantity:number;
}
export class ShoppingCarts{
constructor(public shoppingItems:Array<ShoppingCartItem>){}
get getProducts(){
return this.shoppingItems.filter(element => (element.quantity != 0));
}
get totalItemsCount(){
let count = 0;
for (let product of this.shoppingItems)
count += product.quantity
return count;
}
}
我得到的对象是:
export interface Product {
title:string,
price:number,
$key:string,
category:string,
imageUrl:string
};
答案 0 :(得分:0)
由于缺少发生错误的确切行或代码的一部分,我使用此代码重现了错误:
interface ShoppingCartItem {
product: string;
}
class ShoppingCart implements ShoppingCartItem {
product: string;
}
const t: ShoppingCartItem[] = [{}]; // TS2322 [..] Property 'product' is missing in type '{}'
要解决此问题,只需输入空对象:
const t: ShoppingCartItem[] = [{} as ShoppingCartItem];