I am using babel to transpile.
I have
class BaseComponent
which is extended byclass Logger
.When I run
new Logger()
in the browser, I am getting this errorClass constructor BaseComponent cannot be invoked without ‘new’
the code that throws this is:
var Logger = function (_BaseComponent) { _inherits(Logger, _BaseComponent); function Logger() { _classCallCheck(this, Logger); return _possibleConstructorReturn(this, Object.getPrototypeOf(Logger).call(this, "n")); //throws here }
Answer
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.
Attribution
Source : Link , Question Author : Nikos , Answer Author : loganfsmyth