角度4、5でスピードアップし、強力な型指定されたオブジェクト/モデルにJSON応答をマッピングするためのベストプラクティスが不思議でした。モデルへの対応マッピング - ベストプラクティス
サービス:
getUsers(): Observable<User[]> {
return this.http.get<User[]>('http://localhost:8000/users/')
.pipe(
tap(users => this.log(`fetched users`)),
map(response => {
return response.map((res) =>
{
return new Hero(
response['username'],
response.email);
});
}),
catchError(this.handleError('getUsers', []))
);
}
インタフェース/モデル:
export interface IUser {
id: number;
name: string;
email: string;
}
export class Hero implements User {
public id: number;
constructor(public name: string,
public email: string) {
}
}
リターンユーザーオブジェクトで観察アレイ。 username
はそのオブジェクトのメンバーではありませんので、この表記法を使用すると、ドット表記法でエラーが発生するためです。明らかに、私は最終的に、そのMap関数をテスト容易性/明快さのための別個の関数に持っていきます。
このマッピング/再マッピング/トランスフュージョンを正しく処理するにはどうすればよいですか?
'return response' –
Aravind
あなたは直接' 'map(response => return return response)'を意味します。 '' username'は '' name'にどのようにマップされますか?基本的にこの簡単な例で私の質問です。 –