2017-07-15 74 views
-3

錯誤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

回答

1

,如果你想你的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。爲什麼對象不可用接口 –

相關問題