我正在使用 Angular 4 开发应用程序。在我的代码中,我想从嵌套泛型类创建一个实例,如下代码:
export class Page<T>
{
constructor(c: { new(): T; }){
this.FilterData = new c();
}
TotalItems: number;
PageSize: number;
CurrentPage: number;
TotalPage: number;
FilterData: T;
}
export class Filter<T>
{
constructor(c: { new(): T; })
{
this.AdvanceData = new c();
}
AdvanceData: T
IsAdvance: boolean;
OrderMeThod: string;
OrderBy: string;
KeyWord: string;
}
export class Client
{
Name:string;
}
我不知道如何从我最初的对象Page<Filter<Client>>
中Filter
,并Client
在构造函数中的草签。我已经尝试过诸如:new Page<Filter<Client>>();
但它没有用。请帮我解决这个问题。谢谢
不是调用new
,而是让您传递的函数返回新实例。例子:
interface Generator<T> {
generate(): T
}
export class Page<T> {
constructor(c: Generator<T>) {
this.FilterData = c.generate();
}
TotalItems: number;
PageSize: number;
CurrentPage: number;
TotalPage: number;
FilterData: T;
}
export class Filter<T> {
constructor(c: Generator<T>) {
this.AdvanceData = c.generate();
}
AdvanceData: T;
IsAdvance: boolean;
OrderMeThod: string;
OrderBy: string;
KeyWord: string;
}
export class Client {
Name: string;
}
const clientGenerator: Generator<Client> = {
generate: () => new Client()
};
const filterGenerator: Generator<Filter<Client>> = {
generate: () => new Filter(clientGenerator)
};
const pageOfFilterOfClient: Page<Filter<Client>> = new Page(filterGenerator);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句