TSKaigi 2024での発表です。
テキスト編集時の型の重さの影響、
Type Instantiationの回数が型の重さに繋がるという観点から、
Distributive Conditional Types、Template Literal Types、Generic Constraintsについてと、
それらがType Instantiationの回数に与える影響について、MUIやreact-hook-formの実例からお話しました。
また、改善方法やデバッグツールについても触れています。
https://tskaigi.org/talks/ypresto
当日Google Driveで上げたものをそのまま上げております。デバッグなどの参考リンクを拡充して、後日更新予定です。
FAQ:写真は自分で撮影したのですか?→すべて万博記念公園で撮影しました!
====
TypeScriptではそのチューリング完全な型計算能力を使って、ライブラリの利用者に高度な開発者体験を提供することができます。React、MUI、react-hook-formなどの、ジェネリクスを多用した型定義が、その最たる例です。
一方で型パズルや黒魔術などと呼ばれるこの技法は、使い方によってはエディタがフリーズするほどの負荷がかかり、開発者体験を損ねることもある諸刃の剣です。過剰な計算が発生するシチュエーションの実例を、tsserverの動作とデバッグ方法を交えて紹介します。
(タイムテーブルではTypeScriptと型のパフォーマンスという題になっていますm(_ _)m)