首页 > 解决方案 > 使用简单 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 语句

标签: typescriptmodulesweetalert2

解决方案


推荐阅读