The blog post goes through how to use ember-concurrency with Ember Octane and TypeScript. For Octane, we need to use Native Class Syntax. The ember-concurrency-decorators package was created to make this work for ember-concurrency.
However, decorators cannot change the type of the thing they decorate. To allow TypeScript, the ember-concurrency-ts package was created to provide a couple of utility functions such as taskFor.
Finally, the ember-concurrency-async package provides a Babel transform that allows you to define ember-concurrency tasks using async/await rather than generator function. This simplifies using taskFor on assignment while providing complete type-safety for ember-concurrency tasks.
Read the full blog post with all the tips and tricks and try it out yourself today!