首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在type typescript /angularJ2中“JSON”类型中不存在属性“name”

在type typescript /angularJ2中“JSON”类型中不存在属性“name”
EN

Stack Overflow用户
提问于 2016-06-09 11:45:31
回答 2查看 10.8K关注 0票数 2

在我的REST应用程序中,我使用angularjs 2中的类型记录语言,问题是- typescript给出了编译时错误的

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

当我尝试访问传入的JSON对象时,我的函数代码如下

代码语言:javascript
复制
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];
        }
    }
}

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-09 11:58:49

如果您想创建强类型

您必须使用接口将响应类型(JSON)更改为更具体的内容:

代码语言:javascript
复制
interface IPerformanceData {
  name: string;
}

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

代码语言:javascript
复制
createPerformanceChart(data: IPerformanceData) {
  // you can now use: data.name
}

如果你不在乎

只需将其作为一种any

代码语言:javascript
复制
createPerformanceChart(data: any) {
  // you can now use any property: data.*
}
票数 12
EN

Stack Overflow用户

发布于 2016-06-09 11:48:25

您可以通过以下方法检查JSON数据中是否存在该名称字段

代码语言:javascript
复制
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) <-- check if data.name is present
        {
            details = this.funds[j];
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37725075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档