我开始了解 Angular、TypeScript 和 RxJS。我有一个返回 JSON 的 http 请求。在这个 JSON 中有我需要构建我定义的对象的数据。假设我的对象是这样的:
export class RegularUser {
constructor(
public id: number,
public firstName: string,
public lastName: string,
public token: string
) {}
}
Run Code Online (Sandbox Code Playgroud)
现在,我向某个 API 发送请求,它以这种格式返回数据:
{
success: boolean,
uid: number,
first_name: string,
last_name: string,
cid: number,
rights: number[]
token: string
}
Run Code Online (Sandbox Code Playgroud)
我有 HttpClient 服务,所以我想我会这样做:
this.httpClient.get(
'http://api.example.com/api/get_user'
).pipe(
tap((receivedData: Response) => console.log(receivedData)),
map((receivedData: Response) => {
return new RegularUser(
receivedData.uid,
receivedData.first_name,
receivedData.last_name,
receivedData.token);
})
);
Run Code Online (Sandbox Code Playgroud)
但是对于 TypeScript,receivedData
对象没有上面列出的参数。我是否必须为 API 响应创建一个接口,然后将其映射到我的RegularUser
对象?