当前位置: 首页 > 面试题库 >

Javascript ES6 TypeError:如果没有“ new”,则无法调用类构造函数Client

楚硕
2023-03-14
问题内容

我有一门用Javascript ES6编写的类。当我尝试执行nodemon命令时,我总是会看到此错误TypeError: Classconstructor Client cannot be invoked without 'new'

完整错误如下所述:

/Users/akshaysood/Blockchain/fabricSDK/dist/application/Transaction.js:45
        return (0, _possibleConstructorReturn3.default)(this, (FBClient.__proto__ || (0, _getPrototypeOf2.default)(FBClient)).call(this, props));
                                                                                                                              ^

TypeError: Class constructor Client cannot be invoked without 'new'
    at new FBClient (/Users/akshaysood/Blockchain/fabricSDK/dist/application/Transaction.js:45:127)
    at Object.<anonymous> (/Users/akshaysood/Blockchain/fabricSDK/dist/application/Transaction.js:195:14)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
    at Module.require (module.js:585:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/akshaysood/Blockchain/fabricSDK/dist/routes/users.js:11:20)

我想做的是,我创建了一个类,然后创建了该类的实例。然后,我试图导出该变量。

类结构定义如下:

class FBClient extends FabricClient{

    constructor(props){
        super(props);
    }

<<< FUNCTIONS >>>

}

我如何尝试导出变量->

var client = new FBClient();
client.loadFromConfig(config);

export default client = client;

您可以在此处找到完整的代码>
https://hastebin.com/kecacenita.js
Babel生成的代码>
https://hastebin.com/fabewecumo.js


问题答案:

问题在于该类扩展了本机ES6类,并通过Babel转换为ES5。转译的类至少在没有其他措施的情况下不能扩展本机类。

class TranspiledFoo extends NativeBar {
  constructor() {
    super();
  }
}

导致类似

function TranspiledFoo() {
  var _this = NativeBar.call(this) || this;
  return _this;
}
// prototypically inherit from NativeBar

由于ES6类应该只调用newNativeBar.call在错误的结果。

ES6类在任何最新的Node版本中均受支持,不应进行编译。es2015应该从Babel配置中排除,最好使用env预设设置为nodetarget。



 类似资料:
  • 问题内容: 我正在与colyseus(节点游戏服务器框架)进行服务器端聊天。我将typescript与module:commonjs一起使用,因为colyseus是基于commonjs构建的。 我有延伸的课。在运行时出现此错误: 和JavaScript的麻烦: 从打字稿类: 编译后删除有问题的行时,很容易跳过该错误。但是没有创建基类,这不是一个完整的解决方案。 我用谷歌搜索了这个问题,它似乎与ba

  • 我正试图从这篇中级文章中学习Dagger2,并将RequestQueue作为活动级依赖项传递:https://proandroiddev.com/dagger-2-annotations-binds-contributesandroidinjector-a09e6a57758f我可以很好地创建应用程序组件,但我在ContributesAndroidInjector方面遇到了很多麻烦。应用类别: 应

  • 我正在做一个项目(Next.js 8.1.0版),我想升级到9.2版。接下来我换了衣服。js版本到9.2,我遇到了这个问题: 类型错误:类构造函数应用程序不能被调用没有新的在新的MyApp(/home/节点/应用程序/src/. Next/服务器/静态/开发/页面/_app.js:4384: 191)在处理孩子(/home/节点/应用程序/node_modules/react-dom/cjs/re

  • 为什么下面没有编译: 如有需要,请提供更多详细信息: 我想将tmp传递给父构造函数

  • //模块 //组件 `//预登录Presenter //预物流活动` //在一次创建中 //错误日志 错误:(18,53)错误:找不到符号类DaggerPresentComponent错误:(19,53)错误:找不到符号类DaggerUserLoginComponent错误:(19,10)错误:gorick.gradesprojectandroid.MVP. Presenter. Presente

  • 问题内容: Oracle Java教程站点的这一段使我感到困惑: 所有类都有至少一个构造函数。如果一个类未显式声明任何类,则Java编译器会自动提供一个无参数的构造函数,称为默认构造函数。此默认构造函数调用类父级的无参数构造函数,如果该类没有其他父级,则调用Object构造函数。如果父级没有构造函数(对象确实有一个构造函数),则编译器将拒绝该程序。 如果所有对象都直接或间接继承自Object,那么