2017-09-05 9 views
0

私は.TSでこの方法があります:プロパティ 'result'が型 'void'に存在しません。 ?

search(event) { 
    this.autocompletedata.forEach(function(entry) { 
     this.result.push(entry['items'].filter(a=>a['item'])); 
    }); 

    console.log(this.result,'result'); 
} 

をしかし、私はthis.resultを使用することはできませんが、私は理由を知りません。私がlet resultを宣言するとき、私はこのエラーを受け取っていますが、this.resultを使用できます。なにか提案を ?どういうわけかthis.resultはメソッド内に何も表示されませんか?

答えて

3

問題は、forEach内にprivat関数を作成することです。この関数内のスコープは異なります。矢印機能を使用する場合、スコープは同じままで、this.resultを使用することができます。

search(event) { 
    this.autocompletedata.forEach((entry) => { 
     this.result.push(entry['items'].filter(a=>a['item'])); 
    }); 

    console.log(this.result,'result'); 
} 
+1

も参照してください。 – None

関連する問題