在 TypeScript 的嵌套泛型中创建实例

郑大卫

我正在使用 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TypeScript泛型创建实例

来自分类Dev

嵌套TypeScript函数中的泛型

来自分类Dev

从TypeScript中的泛型类型获取构造函数/实例

来自分类Dev

如何在 TypeScript 中实例化泛型类型?

来自分类Dev

Typescript推断泛型中的泛型

来自分类Dev

Typescript中的泛型转换

来自分类Dev

有没有办法在TypeScript中实例化受约束的泛型类型的实例?

来自分类Dev

强制泛型在TypeScript中实现属性(约束泛型)

来自分类Dev

Typescript中的泛型是什么?

来自分类Dev

Typescript中的默认泛型类型派生

来自分类Dev

TypeScript中泛型的深度条件类型

来自分类Dev

Typescript中泛型格式的歧义

来自分类Dev

TypeScript 中的泛型类型继承

来自分类Dev

如何在TypeScript中使用泛型检测类实例

来自分类Dev

使用参数创建新实例的 TypeScript 泛型函数

来自分类Dev

使用Typescript泛型从AngularFire的已定义结构创建接口

来自分类Dev

TypeScript - 使用泛型创建自定义类型

来自分类Dev

泛型类型推断的 Typescript 泛型

来自分类Dev

在DART中创建泛型类型的实例

来自分类Dev

在Scala中创建泛型类型的实例?

来自分类Dev

TypeScript,泛型和instanceof

来自分类Dev

TypeScript泛型传递枚举

来自分类Dev

TypeScript,泛型和instanceof

来自分类Dev

TypeScript 复杂的泛型方法

来自分类Dev

Typescript在类中创建新实例

来自分类Dev

在Typescript中的泛型类中初始化泛型类型

来自分类Dev

在TypeScript中的泛型类上调用静态函数

来自分类Dev

TypeScript泛型:React中具有联合类型的道具

来自分类Dev

如何在TypeScript泛型中动态指定类型?