【问题标题】:How do I import other modules in a script typescript如何在脚本打字稿中导入其他模块
【发布时间】:2021-09-14 22:09:29
【问题描述】:

我是打字稿新手。我不知道如何在脚本中引用(导入)模块

在我引用的index.html 文件中

<script src="main.js"></script>

main.ts 文件中,我正在尝试导入另一个类型脚本模块

import greet from './greeter';
greet();

greeter.ts 文件中我正在导出一个函数

export default function greet(): void {
  console.log('Hello World');
}

但是在浏览器控制台中我看到一个错误,上面写着Uncaught ReferenceError: exports is not defined

这是我的tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}

我尝试将"module" 属性更改为"es2015",但它不起作用。

【问题讨论】:

  • 我认为你必须先编译它。浏览器(如果我错了,请纠正我)不能使用打字稿。
  • 我转译了它。如果你仔细观察,你会发现我在我的 html 文件中链接了转译的 js 文件
  • 您是否尝试将脚本类型设置为模块? type="module":developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…见最后一节:“还有一点值得注意:”&stackoverflow.com/a/44591205/5781499
  • 我不知道!如果您指定type="module",它确实有效。但是您通过npmyarn 安装的任何软件包都无法导入。它在浏览器控制台中显示Failed to resolve module specifier "&lt;package-name&gt;". Relative references must start with either "/", "./", or "../".

标签: javascript html typescript module script-tag


【解决方案1】:

好的,我发现我不需要导入该模块。我可以在链接到greeter.js的现有脚本标签之前添加另一个脚本标签

<script src="greeter.js"></script>

然后我不需要在greeter.ts 中输入export 或在main.ts 中导入

【讨论】:

    猜你喜欢
    • 2018-01-10
    • 2021-02-03
    • 2021-05-08
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多