Как мне сказать TypeScript, что результатом функции подписки является массив x? - PullRequest
0 голосов
/ 26 октября 2018

У меня возникли проблемы с концепцией типов при использовании noImplictAny и typecript с Angular 6. По сути, компилятор говорит мне, что типом результата является Object, тогда как я знаю, что фактический тип будет массивом типа Manufacturer. Я не могу присвоить результат моему массиву производителей, потому что машинописный текст определен, что результат имеет тип 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;
    });
}

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Вы также можете использовать эту запись:

this.http.get<Manufacturer[]>('manufacturers.json').subscribe(result => {
  console.log(result);
  this.manufacturers = result;
});
0 голосов
/ 26 октября 2018

Вы можете определить тип как это

subscribe((result:Manufacturer[]) =>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...