Javascript 如何使用接口在Typescript中的方法中添加数据?

Javascript 如何使用接口在Typescript中的方法中添加数据?,javascript,angular,typescript,Javascript,Angular,Typescript,我正在做一个购物车测验,当点击add按钮时,产品详细信息会通过event emitter从孩子传递到家长,并传递到组件,但我不知道如何将其添加到购物车?它在下面的addproduct方法中显示错误,因为产品和购物车接口中的属性不匹配 addproduct(product:product){this.cart.items.push(product)} 抛出错误:(参数)产品:产品 “Product”类型的参数不能分配给“CartItem”类型的参数。 类型“Product”缺少类型“CartIte

我正在做一个购物车测验,当点击add按钮时,产品详细信息会通过event emitter从孩子传递到家长,并传递到组件,但我不知道如何将其添加到购物车?它在下面的addproduct方法中显示错误,因为产品和购物车接口中的属性不匹配

addproduct(product:product){this.cart.items.push(product)}

抛出错误:(参数)产品:产品 “Product”类型的参数不能分配给“CartItem”类型的参数。 类型“Product”缺少类型“CartItem”中的以下属性:item,quantityts(2345)

app.component.html

 <app-product-list [products]="products"
                (onAddToCart)="addToCart($event)"
                (onQuantityUpdate)="updateCart($event)"
                class="flex-70"></app-product-list>
 <app-cart class="flex-30" [cart]="cart"></app-cart>

您好,错误是因为您试图将product类型的产品分配给Cart类型。两者都有不同的钥匙在里面,都是强制性的。乍一看,您可以像这样重构它,它应该可以工作

    addToCart({id, name, cartQuantity}: Product) {
     let cart: CartItem = {
       id,
       item: name,
       quantity: cartQuantity
     };

    this.cart.items.push(cart); 
    console.log(this.cart)
   }

它不允许我在addProduct方法中使用new关键字创建实例。您导入了CartItem接口吗?是的,我导入了CartItem接口,它说“CartItem”仅指类型,但在此处用作值。“编辑了上面的答案,现在应该可以了:)
 export class CartComponent implements OnInit{
    @Input() cart: Cart;
       constructor() {}
    addToCart({id, name, cartQuantity}: Product) {
     let cart: CartItem = {
       id,
       item: name,
       quantity: cartQuantity
     };

    this.cart.items.push(cart); 
    console.log(this.cart)
   }