【问题标题】:How to use async/await in .ts file ( I get error : " async functions are only available when targeting ecmascript 6 or higher" )如何在 .ts 文件中使用 async/await(我收到错误消息:“异步函数仅在针对 ecmascript 6 或更高版本时可用”)
【发布时间】:2019-03-21 16:35:43
【问题描述】:

起初..我的项目只包含一个主文件 app.js(expressJS),这个文件有很多行代码。我的开发经理命令我重构代码并将一些函数拆分到另一个 .ts 文件中(从 javascript 迁移到 typescript)

我在迁移到 .ts 之前的第一个 .js 具有异步功能,在我将代码迁移到 .ts 之后我收到一个错误

异步函数仅在面向 ecmascript 6 或更高版本时可用

我不知道如何解决这个问题。我在 tsconfig.json 中找到了我必须针对 es6 的解决方案,但我不知道 tsconfig.js 在哪里我只有 package.json 在我迁移它之前。

你能帮我解决这个问题吗?谢谢。

【问题讨论】:

  • 您使用的是什么捆绑程序?这是角吗?反应?维?等等
  • 现在处于开发模式。

标签: javascript node.js typescript express es6-promise


【解决方案1】:

Typescript 的默认目标是“ES3”。由于您没有在应用程序中使用 tsconfig.json,因此选择了默认编译器选项。如果您希望不使用 tsconfig.json 继续,可以使用以下命令:

tsc --target "ES6"

或者您可以将 tsconfig.json 添加到应用程序并使用它。

有关默认编译器选项,请参阅:https://www.typescriptlang.org/docs/handbook/compiler-options.html

如需了解更多有关 tsconfig.json 的信息,请参阅:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

【讨论】:

  • 我尝试在 package.json 级别创建 tsconfig.json。这是真的吗?在这个文件中,我设置了目标:“es6”和文件:“src/myfile.ts”。我仍然得到与以前相同的错误。
  • @KittinunPongsukjai 您的 tsconfig.json 将包含以下 JSON 对象:{ compilerOptions: { target: 'ES6' } }。我假设您错过了 compilerOptions 作为父属性
  • 我的 tsconfig.json = { "compilerOptions": { "target":"es6" }, "files": [ "function/Translator.ts" ] } 。我仍然收到错误我的解决方案有什么问题?
  • @KittinunPongsukjai 试试这个:tsc --p <path to tsconfig.json> 指定编译时使用的 tsconfig.json。如果上述方法不起作用,请尝试指定命令内联tsc --target ES6
  • 使用命令后出现此错误: tsc --p mypath , tsc --target ES6 "node_modules/@types/es6-shim/index.d.ts:621:5 - 错误 TS2717 : 后续的属性 y 声明必须具有相同的类型。属性 'prototype' 的类型必须为 'WeakSet',但这里的类型为 'WeakSet'。"
猜你喜欢
  • 2017-06-29
  • 2017-04-11
  • 2021-05-23
  • 2020-11-30
  • 2018-03-14
  • 2017-02-12
  • 2020-09-02
  • 1970-01-01
  • 2018-10-27
相关资源
最近更新 更多