Тип TS отсутствует следующие свойства - PullRequest
0 голосов
/ 28 января 2019

Я использую Angular 7.xx с TS в версии 3.2.4.

У меня есть два интерфейса TS.Один расширяет другой:

Это основной интерфейс:

export interface Result {
      var1: string;
      var2: number;
      var3: boolean;
} 

Второй просто добавляет свойство:

export interface ResultPlus extends Result {
      var4: boolean;
}

Теперь у меня есть службавозврат Observable<Result[]>.

В моем компоненте я подписан на эту услугу:

dataArray: ResultPlus[] = [];    

getResults(): void {
      this.service.getResults()
          .subscribe(data => {
            **this.dataArray** = (data as unknown as ResultPlus);
          });
     }

(в коде нет *)

Теперь это.dataArray (полужирный шрифт выше - **) подчеркнут красным и говорит:

ошибка TS2740: Типу ResultPlus не хватает следующих свойств из типа ResultPlus []: длина,pop, push, concat и еще 26.

Что я делаю не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 января 2019

Попробуйте изменить приведение к ResultPlus[] (тип массива), а не к единственному экземпляру:

**this.dataArray** = (data as unknown as ResultPlus[]);

, т.е. вы объявили dataArray как массив типа ResultPlus.

Если вы пытаетесь добавить к this.dataArray для каждого элемента data, то вам нужно нажать на него - что-то вроде:

this.dataArray.push(data as unknown as ResultPlus);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...