TSKaigi 2024にプロポーザルを提出して落ちてました

tskaigi.org

TSKaigi 2024のトーク枠のセッションにプロポーザルを提出してましたが、今日当落発表があり落ちていました。

落ちてしまったので、ここにプロポーザルの内容を公開して供養します。

プロポーザルの内容

背景

ECMAScript の Decorator は長い標準化の道のりの末、2022年3月に Stage 3 に昇格しまし、この進展を受けて TypeScript 5.0 ではこの仕様が実装されました。 更に、Decorator をさらに強化する Decorator Metadata も2023年6月に Stage 3 に昇格して、TypeScript 5.2 で実装されました。 Decorator Metadata は Lit などの Decorator を活用するライブラリに必要な仕様です。Lit の ES Decorator 対応は Decorator Metadata が Stage 3 に昇格するのを待ってから、2023年10月に対応版の Lit 3.0 がリリースされました。

問題提起

しかし、ECMAScript の Decorator が TypeScript の tsc に実装されたことで、すべての TypeScript ユーザーが直ちにこれらの機能を利用できるようになったわけではありません。現在、babel、esbuild、swc など複数の TypeScript 処理系が存在し、これらのツール全てが新しい Decorator 仕様をサポートしているわけではないため、追加の設定なしに利用することができません。

本発表の目的

トークでは、まず TypeScript の各処理系における Decorator と Decorator Metadata のサポート状況を解説します。次になぜ処理系によっては Decorator の実装が進んでいないかを解説します。そして ECMAScript の Decorator を今すぐにでも利用したい開発者のための具体的な workaround を紹介します。

反省

TypeScript の Decorator に関する発表だけだとアピールする文章になっているのが良くないかなと提出後に思いました。この話の面白さは「現代の TypeScript は新しい構文が tsc に実装されても他の処理系でも実装されていなければ実際には使えない」というギャップの部分だと思っています。なのでこれを主題にして Decorator はその話を裏付ける一例として使うほうが、Decorator に興味がない層にもリーチができるのでもっと良いプロポーザルにできたのかなと反省してました。

今後

最近は大きめなイベントが復活しているので、またプロポーザルを出して登壇のチャンスを掴みたいです。そのためにも今後も継続的に知識を学習していつでもプロポーザルを出せる状態を維持していけたらなと考えてます。