TSKaigi

トーク

君だけのオリジナル async / await を作ろう
セッション
君だけのオリジナル async / await を作ろう
DAY2 / 14:40 〜 15:10レバレジーズトラック

TypeScript でジェネレータ関数を使った独自の async / await ライクな記法の作り方を紹介します。

Promise を扱うときには欠かせない async / await ですが、この記法が一般的に使われるようになる前はジェネレータ関数を使って同様の記法を実現するテクニックが使われてきました。
このテクニックは今でも Promise 以外のデータに対して簡便な記法を導入する際には有効です。

この発表では (いくらか歴史を振り返りつつ) JavaScript におけるジェネレータ関数を使った async / await の実装方法と、それに対して TypeScript で型を付けるためのちょっとしたトリック、Promise 以外のデータへの適用について紹介します。
また私自身が取り組んでいる Algebraic Effects への応用など、発展的な話題にも触れられたらと思います。

想定聴衆

  • neverthrow や Effect などのライブラリに登場する yield* の正体が気になっている方
  • async / await ライクな記法を自分でも作りたい方
  • TypeScript のプログラミング技法に関心のある方
susisu

susisu

株式会社はてな / Webアプリケーションエンジニア

桃栗三年型八年

https://susisu.hatenablog.com/
XGitHub