是否可以创建动态类而不预加载它?我想避免预加载该类,因为我是动态导入它的。下面是一个代码示例,说明了我想要实现的目标: import(namespace).then((DynamicClass) => { var classInstance = new DynamicClass(); }目前的结果是:(节点:962)UnhandledPromiseRejectionWarning:TypeError:dynamicClass不是构造函数当我 console.log DynamicClass 时,它显示:{ default: [Function: DynamicClass] }该类的定义如下:命名空间/index.jsclass DynamicClass extends BaseClass { //...}module.exports = DynamicClass;
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
看来您的问题与对模块的误解和较少使用的动态导入语法有关。你不是在导入一个类,而是在导入一个 ES 模块。您可以使用导入的模块,根据您所需的值是否是默认导出,使用相关调用来访问模块的导出值。
如果您的模块默认导出一个类,例如
export default class Class(){...}
您可以使用模块上可用的 default() 函数来初始化类定义。
const module = await import("module-name")
const obj = new module.default();
添加回答
举报
0/150
提交
取消