TypeScript在静态上下文中从类创建新实例

inf*_*rno 5 javascript typescript

TypeScript中是否有一种方法可以通用方式从静态方法创建新实例?

我想做的事情如下:

class Base {
    static getInstance() {
         return new self(); // i need this line :)
    }
}

class Test extends Base {
}

class NextTest extends Base {
}

var test = Test.getInstance();
assert(test instanceof Test).toBe(true);

var nextTest = NextTest.getInstance();
assert(nextTest instanceof NextTest).toBe(true);
Run Code Online (Sandbox Code Playgroud)

如果有人之前做过这样的事情并且可以帮助我,那将会非常有帮助.也许有一种JavaScript方式?

提前致谢.

vas*_*a_c 8

哈克:)

static getInstance() {
     return new this;
}
Run Code Online (Sandbox Code Playgroud)

  • 不是黑客 - 按设计工作;) (2认同)
  • 当我尝试此操作时,出现以下错误:错误TS2351:无法对类型缺少调用或构造签名的表达式使用'new'。 (2认同)