离子2"类型'{}'不能分配给'any []'类型

Bag*_*yer 3 typescript ionic2 angular

有一个离子2项目.

这是我的代码:

export class PostPage {
  posts : [any];

  constructor(private nav:NavController,
    private postSvc: PostService) {
  }

  ngOnInit() {    
    this.postSvc.load()
      .subscribe( data => {
          this.posts = data;
      });
  }
Run Code Online (Sandbox Code Playgroud)

错误消息是针对this.posts = data.我将this.posts定义为[any].同样在我的PostService中,我也将数据定义为[].

邮政服务代码:

load() {
    return new Observable( observer => {

      var Post = Parse.Object.extend("Post");
      var query = new Parse.Query(Post);
      query.find({
        success: results => {
          var data = [];
          for (var i = 0; i < results.length; i++) {
            var object = results[i];
            var item = this.createPost(object);
            data.push(item);
          }
          observer.next(data);
          observer.complete();
        },
        error: error => {
          observer.error(error.message);
        }
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)

我收到了错误消息:

类型'{}'不能分配给'any []

如您所见,我调用了数据为[]的observer.next(data).我不明白为什么我的离子2认为我的数据是'{}'.任何的想法?谢谢.

bas*_*rat 8

posts : [any];你可能意味着关闭posts : any[];

类型'{}'不能分配给'any []

如果TypeScript编译器无法通过类型推断找出类型,例如,如果推断类型是Promise<{}>传递给的值then将是类型,则会发生这种情况{}.

指定类型:

return new Observable( observer => {
Run Code Online (Sandbox Code Playgroud)

例如:

return new Observable<any>( observer => {
Run Code Online (Sandbox Code Playgroud)