我正在使用babel来表达。
我class BaseComponent
class Logger
扩展了new Logger()
。
当我在浏览器中运行var Logger = function (_BaseComponent) {
_inherits(Logger, _BaseComponent);
function Logger() {
_classCallCheck(this, Logger);
return _possibleConstructorReturn(this, Object.getPrototypeOf(Logger).call(this, "n")); //throws here
}
时,我收到此错误
如果没有' new'
,则无法调用类构造函数BaseComponent抛出此代码的代码是:
GPIO_ECHO
答案 0 :(得分:9)
由于ES6类的工作方式,您无法使用已编译的类扩展本机类。如果您的平台支持本机类,我建议使用es2015
,而不是使用预设es2015-node5
,假设您在节点5上。这将导致Babel跳过编译类以便您的代码使用本机类,本机类可以扩展其他本机类。
答案 1 :(得分:6)
另一种解决方案是在transform-es2015-classes
.babelrc
presets: [
["env", { exclude: ["transform-es2015-classes"] }]
]
更新:在最新版本的“env”预设插件名称已更改(例如,它现在是“transform-classes”)。使用“debug”选项检查包含哪些插件。