本人github
这个错误信息表示,您正在尝试在一个非模块的文件中使用 await
关键字。在 TypeScript 和现代 JavaScript 中,await
关键字只能在异步函数(即 async
函数)内部使用,或者在模块的顶层。如果您在一个普通的脚本文件中使用 await
,您会遇到这个错误。
要解决这个问题,您有两个选择:
-
将文件转换为模块:
- 如果您的文件中使用了 ES6 模块的
import
或export
语句,那么该文件会被视为一个模块。在模块的顶层使用await
是合法的。您可以通过简单地添加一个空的export {}
语句来将文件转换为模块。 - 示例:
export {}; async function fetchData() { // 异步操作 } await fetchData(); // 现在这里的 await 是合法的
- 如果您的文件中使用了 ES6 模块的
-
将代码放在异步函数中:
- 如果将
await
用在普通脚本中,您需要确保它位于async
函数内部。 - 示例:
async function main() { // 在这里使用 await } main();
- 如果将
选择哪种方法取决于您的具体需求和项目结构。如果您正在构建一个模块化的应用,添加 export {}
是一个简单的解决方案。但如果您只是需要在特定函数中使用 await
,将代码放在 async
函数内可能是更好的选择。