gpt4 book ai didi

javascript - 类型错误 : UnionFind is not a constructor

转载 作者:行者123 更新时间:2023-12-01 01:53:11 25 4
gpt4 key购买 nike

我有以下用户定义的数据类型。

class UnionFind{

constructor(n){
this.items = n;
}
union(p, q){}

connected(p, q){}

find(p){}

count(){}

}

我在下面的代码中使用了它。

import UnionFind  from "./unionFind.js";
const uf = new UnionFind(10)

我正在使用它运行,

node --experimental-modules union-find/client.mjs

我收到以下错误,

TypeError: UnionFind is not a constructor
at file:///Users/mstewart/Dropbox/data-structures-algorithms-princeton/union-find/client.mjs:13:12
at ModuleJob.run (internal/modules/esm/ModuleJob.js:106:14)
at <anonymous>

如果我将导出默认 UnionFind 添加到数据类型,则会收到以下错误,导出默认UnionFind^^^^^^

SyntaxError: Unexpected token export
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at createDynamicModule (internal/modules/esm/Translators.js:53:15)
at setExecutor (internal/modules/esm/CreateDynamicModule.js:50:23)

最佳答案

为了让 Node 模块使用 importexport 关键字,它应该具有 .mjs 扩展名。抛出 UnionFind 不是构造函数,因为 UnionFind 未从模块中导出。

它应该是unionFind.mjs:

export default class UnionFind {...}

unionFind.js:

module.exports = class UnionFind {...}

导入为:

import UnionFind from "./unionFind";

请注意,与 CommonJS 的互操作将 module.export 视为 ES 模块中的默认导入。

关于javascript - 类型错误 : UnionFind is not a constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com