1

サーバーから取得したJSONデータは次のとおりです

[
  {
    "property1": 1,
    "property2": "asd",
    "property3": 2
  },
  {
    "property1": 1,
    "property2": "asd",
    "property3": 2
  },
  {
    "property1": 1,
    "property2": "asd",
    "property3": 2
  }

]

これを使用する Immutable List オブジェクトを定義したいinterface

export interface myObject {
    propert1: number,
    propert2: string,
    propert3: number
}

私はこのようなことを試しましたが、うまくいきません:

private myObjectList: Immutable.List<myObject> = Immutable.List([]);

そして使用するangular $http

$http.get('my url to the json').then(function(data){
   this.myObjectList = data.data;
});

しかし、その後myObjectList variableはjsonとまったく同じです。代わりに、不変リストオブジェクトを保持し、何らかの方法で特定のタイプでデータをプッシュしたいと考えています。つまり、JSON オブジェクトが とまったく同じでない場合interface myObject、エラーが返されます。

私もこれを試しましたが、タイプスクリプトエラーが発生します

$http.get('my url to the json').then(function(data){
   this.myObjectList = Immutable.List(data.data);
});

error: Type 'List<{}>' is not assignable to type 'List<Queries>'
4

1 に答える 1

1

あなたの最初の試みは、不変リストを割り当てず、正確なデータをに割り当てますmyObjectList

2 回目の試行は正しいです。コンパイラが応答の型を推測できないため、エラーが発生します。
試す:

$http.get('my url to the json').then(function(data){
   this.myObjectList = Immutable.List(data.data as Queries);
});
于 2016-12-20T09:14:06.937 に答える