2016-05-31 19 views
0

私はちょうどAngular 2の作業を開始しましたが、まだtypescriptを正しく使用する上で問題があります。私はこれをコンパイルするときしかし、私は、「エラーTS7017を取得Typescript TS7017:Angular 2のパイプの暗黙的なもの

import { Pipe, PipeTransform } from '@angular/core'; 

@Pipe({ name: 'mapToIterable' }) 
export class MapToIterablePipe implements PipeTransform { 
    transform(dict: Object): any { 
     var a:any = []; 
     for (var key in dict) { 
      if (dict.hasOwnProperty(key)) { 
     --->  a.push({ key: key, value: dict[key] }); 
      } 
     } 
     return a; 
    } 
} 

:私は、私は、オブジェクトを反復処理することができます次のカスタムパイプを作った。オブジェクト型のインデックス署名は暗黙的に 『どんな』タイプを持っている私は本当にしないでください私はこのエラーが消えるように私の関数を書くことができます方法を理解

答えて

0

問題は、この行にある:。

var a:any = []; 

あなたがタイプanyであるとaを定義しているが、それかのようにそれを使用しています配列として定義されたa.push(...)。次のいずれかのオプションを使用して修正できます。

// explicitly define a as an array of any's 
var a: any[] = []; 
// allow TypeScript to infer the type as an array 
var a = []; 
+0

Hmmはそのトリックを行いませんでした。エラーメッセージはまた、私が矢印を置く9行目を指しています。あなたの解決策は私に与えてくれます:エラーTS7017:オブジェクト型のインデックス署名は暗黙的に 'any'型です。 – hY8vVpf3tyR57Xib

+0

遊び場で正常に動作しているようですが、ローカルに別の問題がある可能性があります(多分tsconfig.jsonかもしれません)? – Brocco

関連する問題