小编old*_*lol的帖子

如何解开打字稿通用内部类型

我有一个泛型类图,其中需要包装类型来指定其他类。

interface Data {
    id: number,
}

class EntityClass<T extends Data> {
    public data;

    constructor(data: T) {
        this.data = data;
    }
}

class Result<T extends Data> {
    public data

    constructor(data) {
        this.data = data;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我正在传递类型 (EntityClass<any>和内部类型 ( DataClass) ,即使它总是与any此处的内容匹配。

function extract<Class extends EntityClass<any>, DataClass extends Data>(
    entity: Class
) : Result<DataClass> {}
Run Code Online (Sandbox Code Playgroud)

有没有办法“解开”EntityClass 的内部类型,以避免同时传递两者?这是我想做的:

function extract<Class extends EntityClass<InternalClass>>(
    entity: Class
) : Result<InternalClass> {}
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics

9
推荐指数
1
解决办法
5767
查看次数

标签 统计

typescript ×1

typescript-generics ×1