TS2339: свойство totalPages не существует для типа Object - PullRequest
0 голосов
/ 29 апреля 2018

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

все идет хорошо, но я не могу заставить это работать, пытаясь использовать пагинацию после обучения в 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

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

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

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

getProjects(page, size): Observable<MyType>

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

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

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

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

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

0 голосов
/ 29 апреля 2018

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

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