Babel.js TypeError:构造函数集需要“new”

o3imoua4  于 2022-12-08  发布在  Babel
关注(0)|答案(1)|浏览(216)

给我的测试套件开玩笑的结果是“TypeError:构造函数集需要“new”“
.babelrc配置为:

{
  "presets": [["env", { "modules": false }]],
  "env": {
    "test": {
      "presets": [["env"]]
    }
  }
}

测试套件:

test('Constructor Set requires "new"', () => {
  class A extends Set {
    constructor(...arg) {
      super(...arg);
      this.add(10);
    }
  }

  const a = new A([1, 2]);
  expect([...a][2]).toEqual(10);
});

测试应该会通过,但却出现错误:

TypeError: Constructor Set requires 'new'
        at A.Set (<anonymous>)

      1 | test('Constructor Set requires "new"', () => {
      2 |   class A extends Set {
    > 3 |     constructor(...arg) {
        |                         ^
      4 |       super(...arg);
      5 |       this.add(10);
      6 |     }
qni6mghb

qni6mghb1#

要解决此问题,需要为preset-env插件设置目标。对于jest,目标为node。(它可以放在.babelrc"test"部分)

"env": {
  "test": {
    "presets": [["env", { "targets": { "node": true } }]]
   }
 }

相关问题