错误TS2339:房产“”上不存在类型'Angular2

错误TS2339:房产“”上不存在类型'Angular2

问题描述:

错误TS2339:房产“信息”类型上不存在“EmailData []”错误TS2339:房产“”上不存在类型'Angular2

这是我的代码。帮我!

interface EmailData { 
    message: string 
} 
function ParseJsonToObject(data:any){ 
    let obj:Array<EmailData>; 
    for(var key in data.json()){ // {message: "Hello!"} 
    obj[key] = JSON.stringify(data.json()[key]); 
    } 
    console.log("Data Check :: "+obj.message); 
    return obj; 
} 
+0

您键入的obj为*数组*电子邮件,数组没有消息属性。这种类型是错误的,或者你需要索引到数组中。 – jonrsharpe

+0

你应该粘贴你的问题的数据内容来补充你的问题。使用浏览器控制台询问它并插入屏幕截图图像。它位于{}代码段旁边的工具栏图标中。只需将图像拖到出现的提示放置区域即可。 – JGFMK

,如果你想你的JSON类型“任何”转变为一个类型数组,无论它有钥匙的,还是要在JSON数据来过滤消息这不是真的清楚吗?

这个例子显示了你的“任意”数据如何才能成为类型化的数据:

interface EmailData { 
    message: string 
} 

function parseJsonToObject(data:any):EmailData[]{ 
    let arr = new Array<EmailData>(); 
    for (let obj of data) { 
     arr.push(<EmailData>obj); 
    } 
    return arr; 
} 


let test:any = [{ "message": "hello" }]; 
let result:EmailData[] = parseJsonToObject(test); 
console.log(result[0].message); 
+0

谢谢。我试图动态添加它,就好像它是一个现有的JavaScript一样。 –

+0

类型脚本中是否有任何关联数组? –

+0

对象无法使用Interface,因此使用了Array。为什么对象不可用接口 –