Babel error: Class constructor Foo cannot be invoked without 'new'

前端 未结 2 770
眼角桃花
眼角桃花 2020-12-19 00:09

I am using babel to transpile.

I have class BaseComponent which is extended by class Logger.

When I run new Logger() i

相关标签:
2条回答
  • 2020-12-19 00:53

    Another solution is to include { exclude: ["transform-es2015-classes"] } in .babelrc

    presets: [
       ["env", { exclude: ["transform-es2015-classes"] }]
    ]
    

    UPDATE: In the latest version of "env" preset plugin names have changed (e.g. it's now "transform-classes"). Use the "debug" option to inspect which plugins are included.

    0 讨论(0)
  • 2020-12-19 00:54

    Due to the way ES6 classes work, you cannot extend a native class with a transpiled class. If your platform supports native classes, my recommendation would be, instead of using the preset es2015, use es2015-node5, assuming you're on Node 5. That will cause Babel to skip compiling of classes so that your code uses native classes, and native classes can extend other native classes.

    0 讨论(0)
提交回复
热议问题