Конструктор класса Rectangle не может быть вызван без 'new' при импорте из node_modules - PullRequest
1 голос
/ 27 января 2020

Я использую веб-пакет для своего проекта и импортирую класс из другого пакета. Однако, когда я расширяю этот класс, мой код ломается с 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...