Angular-Type '{}' нельзя назначить типу 'IQuest []' - PullRequest
0 голосов
/ 04 мая 2018

Это мой сервис:

getAll<T>():Observable<T> {
   return this.http.get<T>(this.url);
}

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

interface IQuest {
   id:number;
   qn:string;
   imagename:string;
   Option:string[];
   answer:number;
}

Мой компонент:

questions:IQuest[]=[];

ngOnInit(){
 this.service.getAll().subscribe(data=>{
    console.log(data);
    this.questions = data;
   },error=>{
     console.log(error);
    });
  }

Здесь я получаю сообщение об ошибке типа

Тип '{}' нельзя назначить типу 'IQuest []'. Имущество 'include' отсутствует в типе '{}'.

1 Ответ

0 голосов
/ 04 мая 2018

Я думаю, вы могли бы использовать что-то вроде этого:

questions: IQuest[] = [] as IQuest[];

Другая проблема заключается в том, что данные, которые вы получаете от вашего сервиса через HTTP-вызов, несовместимы с определенным вами интерфейсом.

Что вы видите в консоли в части console.log(data)?

Может быть, попытаться изменить что-то вроде этого:

..
 getAll<T>(): Observable<IQuest> {
..
 this.getAll().subscribe(data => {
      console.log(data);
      this.questions.push(data); // or
      this.questions = data;     // if it is an array
    }, error => {
      console.log(error);
});
...