Typescript 类构造函数不能在没有';新';用于TSdx包

Typescript 类构造函数不能在没有';新';用于TSdx包,typescript,babeljs,commonjs,tsdx,Typescript,Babeljs,Commonjs,Tsdx,我为一个小记者创建了一个npm包。如果我在另一个项目中使用这个包,我会得到以下错误 Uncaught TypeError: Class constructor BaseReporter cannot be invoked without 'new' at new ExampleReporter (..\dist\example-reporter.cjs.development.js:37:26) ExampleReporter继承自Jest提供的BaseReporter类 import

我为一个小记者创建了一个npm包。如果我在另一个项目中使用这个包,我会得到以下错误

Uncaught TypeError: Class constructor BaseReporter cannot be invoked without 'new'
    at new ExampleReporter (..\dist\example-reporter.cjs.development.js:37:26)
ExampleReporter
继承自Jest提供的
BaseReporter

import BaseReporter from '@jest/reporters/build/base_reporter';

export class ExampleReporter extends BaseReporter {
  // ...
}

如中所述,可以通过设置Babel进行修复。但我找不到TSdx文档的有效解决方案

如何配置TSdx
构建


您可以使用监视模式再现问题

$ npx tsdx watch --onSuccess node .
...
  Watching for changes

Welcome to Node.js v12.18.2.
Type ".help" for more information.
> new (require('.').ExampleReporter)()
Uncaught TypeError: Class constructor BaseReporter cannot be invoked without 'new'
您只需设置
--target node
即可解决该问题(因为默认值为
browser

或者,您可以将Babel配置文件
.babelrc
添加到TDdx项目中,并设置目标环境

{
  "presets": [
    ["@babel/preset-env", { "targets": { "esmodules": true } }]
  ]
}

在没有
卷展栏
但使用
tsc
作为transpiler的环境中,设置
compilerOptions.target=“ES6”
可以解决此问题。但事实并非如此;t有关TSdx构建的帮助:/
{
  "presets": [
    ["@babel/preset-env", { "targets": { "esmodules": true } }]
  ]
}