Sangun Kang
ksu_302
JS/TSを長く触っていると、不便な点も「そういうもの」として、無意識に受け入れてしまいがちですよね。その一つが、TypeScriptにおける非同期処理のエラーハンドリングです。 async/await のおかげでコードは劇的に書きやすくなりましたが、便利になった一方で、try-catch のネストや型安全性の曖昧さといった、新しい悩みとも付き合うことになってしまいました。
本LTでは、この課題を解決するために、GoやRustのように「エラーを値(Value)として扱う」アプローチを紹介します。
具体的には、Discriminated Union(Result型)を用いて、コンパイルレベルでエラーハンドリングを強制する手法です。
また、単なる理論だけでなく、実際に自作ライブラリ try-ok を作成し、既存のプロダクトへ導入したことも共有します。 「なぜ標準提案のタプル形式ではなくオブジェクト形式を選んだのか?」という技術的判断や、導入後、狙った通り良い効果があったのかに対してもお話ししたいと思います。