2017-03-06 291 views
0

当我在我的详细信息页面中运行下面的代码时,我得到的属性'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

我相信我缺少一些小事这里。但我花了整个下午,不知道答案。

非常感谢您的帮助!

回答

1

这是一个TypeScript编译器错误,您应该将listDetailsService.load函数的返回类型更改为any或您定义的与您的列表对象匹配的接口。

export class ListDetailsService { 

    //... 
    load(): any { 
     //... 
    } 

} 
+0

谢谢你,工作!我根本没有考虑打字稿。 –

相关问题