从node_modules导入时,如果没有'new',则不能调用类构造函数Rectangle

时间:2020-01-27 15:30:52

标签: typescript webpack

我正在为我的项目使用webpack,并且正在从另一个包中导入一个类。但是,当我扩展此类时,我的代码以Class constructor Rectangle cannot be invoked without 'new'中断。如果我将类定义从node_module复制到我的项目中,那么它将起作用:

其他包装: 该软件包由tsc"target": "ESNext"一起编译。

export class Rectangle {
  // ...
}

我的软件包:该软件包是使用webpack编译的。

import { Rectangle } from 'other-package'

class A {
}
class B extends A {
}
class C extends Rectangle {
}

console.log(Rectangle)
// outputs: class Rectangle { ... }

console.log(A)
// outputs: ƒ A() { ... }

console.log(B)
// outputs: ƒ B() { ... }

console.log(C)
// outputs: ƒ C() { ... }

console.log(new Rectangle())
// outputs: Rectangle {top: 0, bottom: 0, left: 0, right: 0}

console.log(new A())
// outputs: A {}

console.log(new B())
// outputs: B {}

console.log(new C())
// Uncaught TypeError: Class constructor Rectangle cannot be invoked without 'new'

0 个答案:

没有答案