angular 中订阅下一个参数类型错误

subscribe next parameter types error in angular

我在下面分享了我的错误和代码。不知何故,我不明白为什么会导致错误。你能帮帮我吗?

我的代码:

import { Component, OnInit } from '@angular/core';
import {ProductService} from '../../services/product.service';

@Component({
  selector: 'app-products',
  templateUrl: './products.component.html',
  styleUrls: ['./products.component.scss']
})
export class ProductsComponent implements OnInit {

  products: any[] = [];

  constructor(private productService: ProductService) { }

  ngOnInit(): void {
   this.productService.getAllProducts().subscribe((prods: {count: Number, products: any[]}) => {
     this.products = prods.products;
     console.log(this.products);
   });

  }
}

我的错误: my error img

export class ProductsComponent implements OnInit {
  products: any[] = [];
  constructor(private productService: ProductService) { }
  ngOnInit(): void {
   this.productService.getAllProducts().subscribe((prods: IPerson) => {
     this.products = prods.products;
   });
  }
}
interface IPerson{
  count:number,
  products:any[]
}

服务:

getAllProducts(){
  return this http.get(`url`);
}

不过最好还是用下面的方法:

export class ProductsComponent implements OnInit {
  products: any[] = [];
  constructor(private productService: ProductService) { }
  ngOnInit(): void {
   this.productService.getAllProducts().subscribe(prods=> {
     this.products = prods.products;
   });
  }
}
export interface IPerson{
  count:number,
  products:any[]
}

服务:

getAllProducts():Observble<IPerson>{
  return this http.get<IPerson>(`url`);
}

您应该对 http.get 方法进行类型转换

getAllProducts(numberOfResults = 10) { 
  return this.http.get<{count: Number, products: any[]}>(this.SERVER_URL + '/products', { params: { limit: numberOfResults.toString() } }); 
}