我有一个用Javascript ES6编写的类。当我尝试执行nodemon
命令时,总是看到TypeError: Class constructor 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;
9条答案
按热度按时间yfwxisqw1#
问题是这个类扩展了原生ES6类,用Babel移植到ES5,移植类不能扩展原生类,至少没有额外的措施。
结果就像
由于ES6类只能使用
new
调用,因此NativeBar.call
会导致错误。ES6类在任何最新的Node版本中都受支持,不应对其进行翻译。
es2015
应排除在Babel配置之外,最好使用env
preset set tonode
target。同样的问题applies to TypeScript。编译器应该被正确配置为不传输类,以便它们从本机或Babel类继承。
r1wp621o2#
我不是在使用Javascript,而是在使用Typescript,遇到了同样的问题。
我编辑了Typescript编译器配置文件
tsconfig.json
,以生成ES 2017 Javascript代码:而不是默认的ES 2015?-然后一切都运行良好。
(也许这个答案对使用Typescript的人会有帮助,当他们像我一样搜索相同的错误消息时会找到这个问题。)
fnatzsnv3#
对于使用ts-node的用户,可能是您的
tsconfig.json
无法通过ts-node加载。1.确保您已为
tsconfig.json
设置了以下选项:1.尝试使用
ts-node --script-mode
或--project
指定tsconfig.json
的路径。plicqrtu4#
在
package.json
中,您可以使用@babel/preset-env
的目标配置。将esmodules
设置为“true”。下面是我如何在文件中使用的示例:
xpszyzbs5#
对于Angular 9+,这可能也是使用typescript编译标志的问题:
downlevelIteration
importHelpers
更多信息请访问https://www.typescriptlang.org/tsconfig#downlevelIteration。
尝试在
tsconfig.josn
中使用这些标志:如果没有
"importHelpers": true
,它也应该可以工作。此解决方案主要用于Angular 9+和ngcc编译器-这是Angular 11出现的问题。自定义配置(自定义ng-packgr配置- Angular CLI库生成在Angular 6中引入),因为项目中存在Angular 4+。将这些包迁移到Angular 9+库后(项目文件夹)错误开始发生。我发现这些标志(sctrictly downlevelIteration)完全解决了问题。
eqoofvh96#
如果你没有使用babel和simple typescript.我在material中得到了错误.试着减少版本并把它们降低到相似的版本.我的包有各种各样的版本.我通过降低像cdk,material这样的包的包版本来解决这个问题.
vdgimpew7#
在我的情况下,这是观察员从“mobx-react-lite”。
irtuqstp8#
检查appmodule.ts中的“entities”数组。我也忽略了这一点。当我保留查询中使用的实体名称时,问题解决了。希望这个答案能有所帮助。
pkmbmrz79#
我希望你已经能够解决你的问题,这里是我的解决这个错误: