我在使用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 () { ... }
}
这对我没有意义。为什么后一种语法工作正常,而前者明确拒绝编译?我错过了这两种语法是否存在细微差别?
答案 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除外。