映射对模型的响应 - 最佳实践



在这里使用Angular 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) {
  }
}

getUsers返回带有用户对象的可观察数组。username不是该对象的成员,因此我使用此括号表示法,因为点表示法会出现错误。显然,我最终会将该地图功能带入单独的功能,以实现可检验性/清晰度。

如何正确处理此映射/重新映射/转换?

你给自己太多麻烦。

export interface IUser {
  id: number;
  username: string;
  email: string;
}
getUsers(): Observable<User[]> {
  return this.http.get<User[]>('http://localhost:8000/users/')
    .catch(err => this.handleError('getUsers', []));
} 

您可以去,您的响应已输入。

请参阅Typescript作为开发帮助。在编码过程中进行课程非常有用,但是一旦您构建了应用程序,所有这些都会汇编为JavaScript,从而"丢失"所有类和属性。

您不应该为此思考太多。只是为了最简单,它应该起作用。否则,您仍然有一个TS Linter告诉您您的错误在哪里!

最新更新