It took quite a while for web browsers to integrate support for async and await. In the meantime, polyfills could be used to fill the gap. In TypeScript, async and await have been supported since version 1.7. Until version 2.1, though, they were only supported with ES2015 as a target. Since then, TypeScript can down-level emit code that uses async and await to ES5 and even ES3. This is great, as it removes the need for polyfills.