属性'listName'在类型'{}'上不存在
问题描述:
当我在我的详细信息页面中运行下面的代码时,我得到的属性'listName'在类型'{}'上不存在。这似乎有些微不足道,但我花了整个下午都无法理解这里出了什么问题。属性'listName'在类型'{}'上不存在
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import {ListDetailsService} from '../../providers/list-details-service';
@Component({
selector: 'page-item-details',
templateUrl: 'item-details.html'
})
export class ItemDetailsPage {
selectedItem: any;
detailsItems : Array<{title: string, note: string, id: string}>;
constructor(public navCtrl: NavController, public navParams: NavParams, public listDetailsService : ListDetailsService) {
// If we navigated to this page, we will have an item available as a nav param
this.selectedItem = navParams.get('item');
this.detailsItems = [];
this.listDetailsService.load(this.selectedItem.id).then(myListItems => {
console.log(myListItems);
console.log(myListItems.listName);
}).catch(function(e){
console.log(e);
})
}
}
当我运行console.log(myListItems)时,我得到以下数据。
{
items:
[ { _id: 58bbf7fd463667f51d7804f6,
votes: '10',
item: 'Apple Iphone' },
{ _id: 58bbf7fd463667f51d7804f5,
votes: '2',
item: 'Google Phone' },
{ _id: 58bbf7fd463667f51d7804f4,
votes: '2',
item: 'Samsung Phone' },
{ _id: 58bbf7fd463667f51d7804f3, votes: '6', item: 'LG Phone' } ],
__v: 0,
listName: 'Best Phones',
_id: 58bbf7fd463667f51d7804f2 }
然而,当我运行
console.log(myListItems.listName);
我得到
Property 'listName' does not exist on type '{}'.
即使属性存在于对象myListNames
我相信我缺少一些小事这里。但我花了整个下午,不知道答案。
非常感谢您的帮助!
答
这是一个TypeScript编译器错误,您应该将listDetailsService.load
函数的返回类型更改为any
或您定义的与您的列表对象匹配的接口。
export class ListDetailsService {
//...
load(): any {
//...
}
}
谢谢你,工作!我根本没有考虑打字稿。 –