You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
如图所示,babel在编译源代码的时候报错:Class constructor Application cannot be invoked without 'new'。
对这个问题进行深究,发现是babel对 class a extends b{}而b是class声明且没有转义导致的,有兴趣的朋友可以试一下下面这段代码:
背景
如图所示,babel在编译源代码的时候报错:Class constructor Application cannot be invoked without 'new'。
对这个问题进行深究,发现是babel对 class a extends b{}而b是class声明且没有转义导致的,有兴趣的朋友可以试一下下面这段代码:
这个会报同样的错误,究其原因就在于babel默认不会转义node_modlues中的文件,可能细心的朋友会发现,为什么koa1中没有报同样的错误?因为koa1构建类的时候用的是prototype,而koa2则是用的class。
解决方案
这里给大家提供一个比较简单方便的解决方案,也就是在extends koa之前先对koa进行 new操作,再进行集成,代码如下:
轻松几步就可以跨过这个问题。在这里有一点需要注意的是 assign并不会拷贝__proto__上面的方法,class在实例化的时候,除了constructor中的方法和属性剩下的都会挂到__proto__上面,所以这里做了两步操作。
The text was updated successfully, but these errors were encountered: