gpt4 book ai didi

Angular 4 : Class with constructor as http Observable model

转载 作者:搜寻专家 更新时间:2023-10-30 21:28:42 26 4
gpt4 key购买 nike

在我的应用程序中,我有一个定义为带有构造函数的类的模型。像这样:

export class Movie {
title: string;
posterURL: string;
description: string;

public constructor(cfg: Partial<Movie>) {
Object.assign(this, cfg);
}

getEndDate(): Date {
return new Date();
}
};

我也有一个使用此模型的 HTTP 请求

getMoviesData(): Observable<Movie[]> {
return this.http.get<Movie[]>(`http://localhost:3544/movies`)
}

正如预期的那样,它不起作用

我该如何解决这个问题?我还应该创建一个界面还是什么?

感谢您的帮助:)

最佳答案

HttpClient方法是通用的,this.http.get<Movie[]>断言结果符合 Movie[]接口(interface)并且不创建Movie实例。

为了使结果成为类实例,类应该被显式实例化。类构造函数最好接受普通对象,其属性将分配给类实例,并且 Movie已经用 cfg 做到了参数。

因为 Partial<Movie> 不太可能type 精确描述了接口(interface),最好声明一个单独的接口(interface):

interface IMovie {
title: string;
posterURL: string;
description: string;
}

class Movie implements IMovie { ... }

...

getMoviesData(): Observable<Movie[]> {
return this.http.get<IMovie[]>(...)
.map(plainMovies => plainMovies.map(plainMovie => new Movie(plainMovie)))
}

关于 Angular 4 : Class with constructor as http Observable model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47177015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com