TSKaigi

燃えるゴミを火曜日に出したらコンパイルエラーにしたい

5分セッション
14:40 - 15:20 / kickflowトラック

ゴミ出しには、「燃えるゴミは月・水」「資源ゴミは第2・第4水曜」のような、地域ごとに異なる複雑なルールがあります。本発表では、この身近で面倒なルールをTypeScriptの型で表現し、曜日とゴミの種類の不正な組み合わせをコンパイルエラーにする方法を紹介します。Union型やMapped Types、Indexed Access Typesを使った素朴な実装から始め、自治体ごとの差分、隔週回収、祝日といった現実の例外を追加し、最後は「この日に出してよいか」という具体的な日付の判定まで型だけで行います。日常ネタを楽しみながら、「不正な状態を表現不能にする」型設計や、データから型を導出してルールの重複を防ぐ設計について持ち帰れる発表です。

かなと

かなと

toggle holdings株式会社 / software engineer

X
タイムテーブルへ