typescript - 使用简单 TypeScrypt 文件中的模块导致错误“无法在模块外使用导入语句”
问题描述
在 Visual Studio 2019 Web 项目中,我试图在一个简单的 TS 文件(无模块)中使用 sweetalert2。我从 CDN 中引用了 sweetalert2 的 .js 文件,并在我的解决方案中添加了文件 sweetalert2.d.ts。然后我在我的 test.ts 文件中导入模块(见代码),TS 编译器很高兴并且可以找到Swal.fire()
. 但是,生成的 test.js 文件在顶部有导入,这会导致浏览器中出现错误,指出不能在模块外部使用导入。如果我从生成的 test.js 文件中手动删除导入,一切正常。
我怎样才能同时让 TS 编译器找到模块/命名空间(Swal 是模块内的命名空间)并且仍然让生成的 test.js 文件在浏览器中工作?
测试.ts
import Swal from "sweetalert2";
function test() {
Swal.fire('Any fool can use a computer')
}
index.html(用于测试)
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9.10.12/dist/sweetalert2.all.min.js"></script>
<script src="test.js"></script>
</head>
<body>
<script>test();</script>
</body>
</html>
Chrome 中的错误
未捕获的语法错误:无法在模块外使用 import 语句
解决方案
推荐阅读
- javascript - 如何在功能方法上处理鼠标事件中的杂质
- c - 为什么在循环中显示 ASCII 字符时出现对齐问题?
- laravel - 在 Laravel 中上传照片
- django - django-cms 识别浏览器用户
- javascript - node_modules/@types/node/globals.d.ts:错误 TS2451:无法重新声明块范围变量“控制台”
- postgresql - 设计一个数据库来保存和查询动态范围?
- django - 在 django 模板中显示查询集对象
- google-apps-script - 将表格从一个 Google Docs 文件复制到另一个
- vb.net - DataGridView 没有显示我的删除按钮
- angular - 跟踪窗口滚动条的 angular 5 指令