Я использую веб-пакет для своего проекта и импортирую класс из другого пакета. Однако, когда я расширяю этот класс, мой код ломается с Class constructor Rectangle cannot be invoked without 'new'
. Если я скопирую определение класса из node_module в мой проект, он будет работать так:
Другой пакет: Этот пакет скомпилирован tsc
с "target": "ESNext"
.
export class Rectangle {
// ...
}
Мой пакет: Этот пакет скомпилирован с использованием веб-пакета.
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'