繁体   English   中英

导入类时“不能在模块外使用导入语句”和“未捕获的语法错误:意外的标识符”

[英]"Cannot use import statement outside a module" and "Uncaught SyntaxError: Unexpected identifier" when importing a class

我正在尝试将一个类导入到我的“main.js”文件中。 这是我的代码的缩小版本。

// "extended.js" file

export default class Test {
  constructor() {
    this.prop = "Hello"
    console.log(this.prop)
  }
}


// "main.js" file

window.onload = function () {
  import Test from "./extended"
  new Test()
}

main.js 文件是我的 Express 应用程序的前端 JavaScript 文件,因此它存储在“public”文件夹中。 当您加载页面时,发生的初始错误是“无法在模块外使用导入语句”。 我自己做过研究,很多人都表示对“main.js”脚本标签使用type="module"可以解决这个问题。 当我这样做时,错误变成了“Uncaught SyntaxError: Unexpected identifier”。 关于如何使用 ES6 模块和类,我有什么遗漏吗?

您只能在顶级导入 - 它不能在块内完成。 改变

window.onload = function () {
  import Test from "./extended"
  new Test()
}

import Test from "./extended"
window.onload = function () {
  new Test()
};

不过,我也建议不要为副作用创建类 - 如果您只想让类一些事情,而不是返回有用的东西,请改用普通函数。

export default () => {
  const prop = "Hello";
  console.log(prop);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM