在typescript/angularJs 2中的类型'JSON'上不存在属性'name'

Abd*_*ala 1 json typescript angular

我在angularjs 2中使用typescript语言到我的REST api应用程序,问题是 - typescript给出编译时错误

[ts] Property 'name' does not exist on type 'JSON'.any

当我尝试访问INCOMING JSON对象时,我的功能代码如下

createPerformanceChart(data: JSON) {
    // Show Up the Fund Details Data 
    var details: any;
    for(var j = 0 ; j < Object.keys(this.funds).length; j++)
    {
        if(data.name == this.funds[j].name) // data.name throws Error
        {
            details = this.funds[j];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何转换JSON或访问JSON对象 - 这样它不会抛出编译时错误并让我编译代码.

Woj*_*tek 9

如果你想做出强大的类型

您必须JSON使用例如interface 更改响应类型()更具体的内容:

interface IPerformanceData {
  name: string;
}
Run Code Online (Sandbox Code Playgroud)

然后将其用作传入响应的类型:

createPerformanceChart(data: IPerformanceData) {
  // you can now use: data.name
}
Run Code Online (Sandbox Code Playgroud)

如果你不在乎

只需使它成为一种类型any:

createPerformanceChart(data: any) {
  // you can now use any property: data.*
}
Run Code Online (Sandbox Code Playgroud)