有一个离子2项目。
这是我的代码:
export class PostPage {
posts : [any];
constructor(private nav:NavController,
private postSvc: PostService) {
}
ngOnInit() {
this.postSvc.load()
.subscribe( data => {
this.posts = data;
});
}
错误消息适用于 this.posts = data 。我将this.posts定义为[any]。同样在我的PostService中,我也将数据定义为[]。
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);
}
});
});
}
我收到了错误消息:
输入&#39; {}&#39;不能分配给任何[]
类型
如您所见,我调用 observer.next(data),其中数据为[]。我不明白为什么我的离子2认为我的数据是&#39; {}&#39; 。任何的想法?感谢。
答案 0 :(得分:7)
关闭posts : [any];
你可能意味着posts : any[];
类型'{}'不能分配给'any []
如果TypeScript编译器无法通过类型推断找出类型,则会发生这种情况,例如:如果推断类型为Promise<{}>
,则传递给then
的值将为{}
类型。
在以下位置指定类型:
return new Observable( observer => {
例如:
return new Observable<any>( observer => {