Angular 5 / Typescript属性' propName'类型' {}'上不存在

时间:2018-04-18 12:24:16

标签: angular typescript angular5

我正在尝试创建一个返回对象的Typescript函数。但是,我一直收到以下错误:

ERROR in src\app\components\model\model.component.html(3,30): : Property 'heading' does not exist on type '{}'.

我的功能如下:

getTestObject(): { [key: string]: any } {
    let myObj = {};

    myObj = {
        'heading': 'My heading',
        /* Other properties here */
    };

    return myObj;
}

然后我在我的html文件中使用它:{{ myObj.heading }}。我在这里阅读答案:Typescript property does not exist on type {}并更改了以下行:

let myObj = {}; 

更改为:

let myObj = {} as { [key: string]: any };

但是我得到了同样的错误。我究竟做错了什么?任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:1)

因此,您需要确保在加载组件视图时调用函数getTestObject()。

我能够使用更简单的getTestObject()函数和定义为的类成员来使用它  myObj:any = {}

这里是我的班级

export class MySampleClass{
    myobj:any={};
    getTestObject(){
        this.myobj = {heading:'My heading'};
        return this.myobj;
    }
    void ngOnInit() {
        this.getTestObject();
    }
} 

这是我的模板插值

{{ myObj.heading }}

答案 1 :(得分:0)

我测试了您的代码here并且它有效。

function getTestObject(): { [key: string]: any } {
  let myObj = {};

  myObj = {
    'heading': 'Works !!'
    /* Other properties here */
  };

  return myObj;
}

let a = getTestObject();
console.log(a.heading);