Just to address something that's potentially misleading: technically, the Typescript compiler by itself, even for 2.1, does not "downlevel" `async/await` to ES3/ES5-compatible code. The generated code still uses Promises, which first came into the spec with ES6/ES2015. So, you'll need a polyfill. Still, that's better than the previous state of things, where the generated code relied on the `yield` keyword, which couldn't be polyfilled.