web-dev-qa-db-ja.com

Typescript Mapがその関数の使用中にエラーをスローする(mapobject.keys()は関数ではありません)

私はTypeScriptの新しい蜂です。angular4プロジェクトでは、jsonとしてマップオブジェクトを受け取っています。

だから私は以下のクラスを宣言しました

 <importing... required classes here..>
  export class FormConfig  {
    public id: number;
    public name: string;
    public fieldMap :Map<string,Array<Field>>;
    public fieldList : Array<Field> ;
  }

まったく同じJSONをAPIから受け取っています。私はFormConfigのオブジェクトをコンソール化し、エラーなしでコンソールを取得しています。私のコードは警告やエラーなしでコンパイルされました。しかし、forEach、keys、getなどのMapの組み込み関数を使用して、マップからキーと値にアクセスすることはできません。しかし、これらの関数の提案を示すIDE。コードの一部を以下に示します。

 formConfig : FormConfig; 
 console.log(JSON.stringify(formConfig)); // works fine

 keys : string [] = Array.from (formConfig.keys()) ; // showing error (formConfig.keys is not a function)

私は自分のangular4プロジェクトにes5ターゲットを使用しており、IDEはビジュアルスタジオコードです。

私がここで犯した間違いを私に知らせる前に誰かがこの問題に直面しましたか?.

ありがとうございました。

9
Vishnu KR

次のようなキーを使用して値を取得できます。

for (const key in formConfig) {
  console.log('The value for ' + key + ' is = ' + formConfig[key]);
}

オブジェクトのキー値の配列を取得するには、次のようにします。

keys: string [] = Object.keys(formConfig);
9
onetwo12