В типе ‘CategoryModel[]’ отсутствуют следующие свойства из типа ‘GenericModel

#javascript #angular #typescript #angular6 #angular7

#javascript #угловой #typescript #angular6 #angular7

Вопрос:

Когда я отправляю запрос на сервер, ответ будет предоставлен мне в этом :

 { 
   data:array(6),
   message:"operation Success",
   isSuccess:true,
   statusCode:0
}
  

Вот почему я создал универсальный класс :

 export interface GenericModel<T> {
 data:T;
 isSuccess:boolean;
 statusCode:number;
 message:string;
 }
  

теперь я отправляю запрос на сервер с просьбой предоставить мне все Category List , я создаю это универсальное поле:

ListResponse:GenericModel<CategoryModel[]>;

эта CategoryModel :

 export interface CategoryModel {
id:number;
name:string;
parentId:number;
}
  

И я использую эту функцию:

 GetMainCat(){
this.categoryService.GetListItem(this.GetAllcatListUrl).subscribe(data=>{
  this.ListResponse=data
  console.log(this.listCatModel)
});
}
  

Но в этой строке this.ListResponse=data это показывает мне ошибку :

В типе ‘CategoryModel[]’ отсутствуют следующие свойства из типа ‘GenericModel’: данные, isSuccess, StatusCode, сообщения (2739)

Данные имеют этот формат:

 { 
   data:array(6),
   message:"operation Success",
   isSuccess:true,
   statusCode:0
}
  

В чем проблема?

Ответ №1:

Трудно сказать, потому что мы не можем видеть, как вы устанавливаете ListResponse тип. Я предполагаю, что вам нужно установить для него правильный тип. Попробуйте установить его как any если это работает, вы просто неправильно использовали тип

Редактировать: теперь я это вижу:

ListResponse:CategoryModel[]; Это должно исправить это