针对ES5的异步功能

时间:2016-06-05 17:36:12

标签: typescript async-await

我在使用TypeScript 1.8时发现了一些奇怪的东西。我的目标是ES5,我试图使用async / await。我知道对roadmap for 2.0的支持是在https://stackoverflow.com/a/37364044,但它似乎已部分起作用了吗?

例如,这不会编译:

module MyModule {
    async function myFunction() { ... }
}

错误是error TS1311: Async functions are only available when targeting ECMAScript 6 and higher.非常清楚,对吧?

然而,这确实编译了,似乎工作正常:

module MyModule {
    myFunction = async function () { ... }
}

这对我没有意义。为什么后一种语法工作正常,而前者明确拒绝编译?我错过了这两种语法是否存在细微差别?

2 个答案:

答案 0 :(得分:3)

他们还不支持作为es5目标。很快就会发生。

更多

我在这里提到这个事实:https://basarat.gitbooks.io/typescript/content/docs/async-await.html

答案 1 :(得分:0)

发现Oskar对“What about Async/Await?”的评论,我试着按照他提到的方式:

TypeScript => ES6 => Babel => ES5

使用gulp-typescript@2.14.1(使用typescript@1.8.10)和gulp-babel@6.1.2,结果是:chrome,firefox,Safari,IE Edge工作正常,IE8除外。