首页 > 解决方案 > 我如何告诉 TypeScript 订阅函数的结果是一个 x 数组?

问题描述

我在使用 noImplictAny 和带有 Angular 6 的 typescript 时遇到了类型的概念。基本上编译器告诉我结果的类型是 Object,而我知道实际类型将是制造商类型的数组。我无法将结果分配给我的制造商数组,因为 typescript 确定结果是 Object 类型(因为它没有方法签名,所以它是隐式的)。

当我无法控制结果的输入时,如何使用 noImplicitAny?还是我?

interface Manufacturer {
  key:string;
  i18nName: string;
}


  public manufacturers:Manufacturer[];
  public manufacturersCollapsed: collapse[] = [];


  constructor(private http: HttpService) {

  }

  private getManufacturers() {
    this.http.get('manufacturers.json').subscribe(result => {
      console.log(result);
      this.manufacturers = result;
    });
}

标签: typescriptoop

解决方案


您可以像这样定义类型

subscribe((result:Manufacturer[]) =>

推荐阅读