忽略抽象classe没有新错误

时间:2017-11-21 21:36:54

标签: typescript

我有一个抽象类,它的一个函数需要创建一个自己的实例。显然在继承的类new this()中将创建一个继承类的新实例,而不是抽象类。

new this()处的Typescript错误,因为从技术上讲,我正在创建一个抽象类的新实例(或者如果我直接使用该类的话)。

是否可以忽略错误?我宁愿忽略那一行而不是所有关于抽象类的新闻。

从类定义中删除abstract使得typescript感到满意并且代码按预期工作。所以这里唯一的问题是打字稿并不快乐。

1 个答案:

答案 0 :(得分:1)

您可以使用 getPrototypeOf

abstract class Parent {
    replicate(): this {
        return new (Object.getPrototypeOf(this).constructor)();
    }
}

class Child extends Parent {}

let c = (new Child).replicate();

console.log(c); // Child {}