TS2339:属性totalPages在Object类型上不存在

时间:2018-04-29 17:57:55

标签: angular angular5 angular2-services

我正在使用angular5在一个简单的应用程序中工作,我有一个页面,它使用带有弹簧启动的API Restful返回一些项目信息的列表。

一切顺利,但在youtube上按照教程后尝试使用Pagination时,我无法正常工作。

这是我收到错误的方法

        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 :(得分:4)

这是因为Typescript编译器会检查该数据变量。要解决这个问题,请明确告诉TypeScript数据类型为

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

答案 1 :(得分:2)

可以通过在服务函数的返回类型中提供正确的类型或接口来解决此错误,如:

getProjects(page, size): Observable<MyType>

或为数据提供类型obj

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

并创建一个界面

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

这是适当的类型检查。始终可以选择使用any,但不建议这样做。