TS2339: TotalPages не существует для типа Object

81
8

Я работаю в простом приложении с угловым5, у меня есть страница, которая возвращает списки информации о некоторых проектах, используя API Restful с весенней загрузкой.

все идет хорошо, но я не могу заставить это работать, пытаясь использовать Pagination после учебника в youtube.

это метод, при котором я получаю сообщение об ошибке

        pageProjects:any;
pages:Array<number>;

ngOnInit() {

this.projetSevice.getProjects(this.currentPage,this.size)
.subscribe(data=>{
this.pageProjects=data;
this.pages=new Array(data.totalPages);
},err=>{
console.log('this is error');
})
}

я получаю эту ошибку:

   TS2339 : Property totalPages doesnt exist on type Object

как я могу это решить? заранее спасибо.

спросил(а) 2018-04-29T20:57:00+03:00 2 года, 6 месяцев назад
1
Решение
59

Эта ошибка может быть решена путем предоставления правильного типа или интерфейса в возвращаемом типе вашей сервисной функции, например:

getProjects(page, size): Observable<MyType>

или указать тип данных obj

this.projetSevice.getProjects(this.currentPage,this.size)
.subscribe(data: MyType=>{

и сделать интерфейс

interface MyType {
totalPages: number;
//other properties
}

Это для правильной проверки типов. Всегда есть возможность использовать any но не рекомендуется.

ответил(а) 2018-04-29T21:05:00+03:00 2 года, 6 месяцев назад
81

Это связано с тем, что компилятор Typcript проверяет эту переменную данных. Чтобы исправить это, явным образом скажу тип данных типа TypeScript как любой,

this.projetSevice.getProjects(this.currentPage,this.size)
.subscribe((data:any)=>{

ответил(а) 2018-04-29T21:00:00+03:00 2 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема