无法转换包含异步等待的 TypeScript

Cannot transpile TypeScript containing async await

尝试转换以下包含 asyncawait 关键字的 TypeScript 代码时

async function foo() {
    await bar();
}

我收到以下错误

src/aa.ts(1,7): error TS1005: ';' expected.
src/aa.ts(2,11): error TS1005: ';' expected.

结果是一个包含此内容的 .js 文件

async;
function foo() {
    await;
    bar();
}

我正在使用这些 tsc 选项:-t es6 -m commonjs,遵循 this MSDN blog 上的说明。我安装了 TypeScript 1.8.9。

有什么想法吗?

出于某种原因,TypeScript 编译器无法识别 asyncawait 关键字。即使 TypeScript 编译器版本正确,也会发生这种情况。

我解决这个问题的方法是卸载 tsc 并全局安装 typescript:

npm uninstall --global tsc
npm install --global typescript

我在异步箭头函数中遇到了类似的问题:

async resource_type => some_value
// error TS1005: ',' expected.

当我用括号括起我的函数参数后,Typescript 很高兴:

async (resource_type) => some_value