【问题标题】:TypeError: Constructor Set requires 'new'TypeError:构造函数集需要“新”
【发布时间】:2019-06-16 16:17:40
【问题描述】:

开玩笑地给我的测试套件结果是“TypeError: Constructor Set requires '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 |     }

【问题讨论】:

  • 如果你设置"presets": ["env"]。删除多余的方括号换行
  • 没用。

标签: javascript ecmascript-6 jestjs babeljs babel-jest


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 2019-08-14
    相关资源
    最近更新 更多