小编geo*_*007的帖子

如何将 http 请求响应映射到我在 TypeScript 中定义的对象

我开始了解 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对象?

interface rxjs typescript angular

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

angular ×1

interface ×1

rxjs ×1

typescript ×1