【TSKaigi】初めて登壇しました!
はじめに
TSKaigi 2025に参加しました! 初めてのカンファレンス参加で、ドキドキしながらも多くの素晴らしい経験をしてきました。
Day1はオンラインから参加、Day2は現地から参加しました。Day1は仕事をしながらの参加でしたので、Day2についての感想が主になります。
参加しての感想
想像していた以上の良い体験ができました。 会場の雰囲気はとても良く、参加者同士、スポンサーブースや懇親会での交流も活発でした。
当初は、登壇者の言葉から知識を得ることを主眼としておりましたが、参加者の方々との対話を通して予想を遥かに超える学びがありました。 オンラインやスライドだけでは決して味わえない、素晴らしい経験に深く感銘を受けました。
スポンサーブース
会場には多くのスポンサーブースがありました。移動の途中に立ち寄りやすい配置だったため、どのブースも活気に満ち溢れていました。
それぞれのスポンサーが趣向を凝らしたブースを展開しており、それらの体験がとても楽しかったです。

また、ブースを訪れる動機として、スポンサーブーススタンプラリーの存在が非常に助かりました(スタンプラリーの景品としてB賞のペットボトルカバーを手に入れました🙌)。 ブースに立ち寄るハードルが下がり、スタンプラリーを通じてスポンサーのサービスや製品について知ることができました。
普段利用しているサービスを開発しているスポンサーもいくつかあり、それらがどのように開発されているのかを知れたのは非常に興味深かったです。
懇親会
Day2の全発表が終わった後、懇親会が開催されました。
初めは同じ会社の人と話していましたが、後半は他の多くの参加者と話すことができました。
初対面の方々と話すことは緊張しましたが、参加者の皆さんがとてもフレンドリーで(思った以上に)すぐに打ち解けることができました。
それぞれの会社でのTypeScriptの活用方法や、開発の現場での課題など、様々な話題で盛り上がりました。
トークの感想
仕事の都合や登壇前後の時間の関係で、全ての時間帯で視聴できませんでしたが、参加したトークはどれも素晴らしいものでした。
私が参加したトークの中で、特に印象に残ったものを紹介します。
Day1
The New Powerful ESLint Config with Type Safety
Anthony Fuさんが招待講演で話されたトークです。
The New Powerful ESLint Config with Type Safety - Slidev
talks.antfu.me
開催の2ヶ月ほど前から東京に住んでらっしゃるようで、今回のトークも直前に決まったようです。2ヶ月ほどしか住んでいらっしゃらないのに、日本語がかなり上手で驚きました。
トークの内容はESLintとFlat Configの黎明期から始まり、 従来のLegacy ConfigからモダンなFlat Configへの移行手順、 そして@antfu/eslint-typegenを活用した型安全なESLint設定、 さらには@antfu/eslint-plugin-commandの紹介に至るまで、 多岐にわたり興味を覚える内容でした。
Flat Configの移行ではESLintの設定を可視化するConfig Inspectorを利用していましたが、 現在はMigration Toolを利用することで自動化されていることを知り、ESLintの進化を感じました(なかなか大変な仕事なので助かりますね)。
ESLintの設定を型安全に保つための@antfu/eslint-typegen
は、rules
の型補完という思い返せば困っていたような悩みを解決してくれる素晴らしいツールだと感じました。
typescript-eslintのtypingsのように代表的なプラグインの型を定義しているものと想像していましたが、
eslint-typegen.d.ts
に動的に自動的生成するという話で驚きました。さらに、その生成プロセスが講演で詳細に解説されており、強い興味を惹かれました(画像はスライドより引用)。

@antfu/eslint-plugin-command
は昨今のAI開発で行うコメントによるコード生成のようなものをESLintで実現するもので、非常に面白い試みだと感じました。
ESLintを活用した開発に携わる方で、まだご覧になっていない方には、ぜひYouTubeでアーカイブをご視聴いただくことをお勧めします。発表はほとんどの部分英語で行われていますが、明瞭な発音で聞き取りやすいです。
SignalとObservable―新たなデータモデルを解きほぐす
lacolacoさんがセッションで話されたトークです。
2025-05-23 SignalとObservable ― 新たなデータモデルを解きほぐす (TSKaigi 2025) - Google スライド
SignalとObservable ― 新たなデータモデルを解きほぐす TSKaigi 2025 lacolaco @laco2net
docs.google.com
主にSignals
とObservable
についてのトークでした。
Observable
については聞いたことがある程度の知識でしたが、具体例を通して解説があり理解しやすかったです。
普段主にReact
を利用している私にはSignals
に関する内容は非常に新鮮に感じられました。
原始的な状態管理の手法から段階的にSignals
で実現したいことが説明されており、その流れが非常に分かりやすく続くトークへの理解をスムーズに促しました。
セッション後半では、Signals
とObservable
の特性を踏まえ、関数呼び出しが返す値を「同期 vs 非同期」「単一 vs 連続」「Pull vs Push」の3つの軸で6つのカテゴリに分類する解説が行われ、それぞれの位置付けが明確に示されました。
これらの分類を考察することで、現代のJavaScriptにおいて不足している要素について深く考えさせられ、Signals
やObservable
のような仕組みが必要なように感じました。
さらに、補足のブログも公開されており、セッションの内容をより深く理解するための素晴らしい資料となっています。
Day2
TypeScriptネイティブ移植観察レポート TSKaigi 2025
berlysiaさんが主演者公演で話されたトークです。

TypeScriptネイティブ移植観察レポート TSKaigi 2025 - Speaker Deck
speakerdeck.com
TypeScript CompilerのGo言語による実装Corsa
(既存はStrada
)への移行の話でした。
運良く(?)プレビュー版の公開がTSKaigiの開催当日である2025年5月23日0時(日本時間)に行われたので、発表内容の更新がとても大変だったと思います。 それにもかかわらず、プレビュー版(tsgo)も発表へ巧みに組み込まれており、その発表力と迅速な対応には尊敬の念を抱きました。
トークでは、Go言語による移植の具体的なイメージ、その採用理由、10x Fasterを達成した背景、驚異的な開発速度を維持できた要因、そして得られたバジェットの活用などが語られました。
10倍の速度改善は、ネイティブ化と並列化がそれぞれ3〜3.5倍の改善によって実現されており、特にGCの改善が大きな要因となっていることが印象的でした。
- 完璧な道具を追い求めるのではなく、自動変換・手動調整・テストのバランスをうまく保ちながらサイクルを回すような開発体制
- 10倍の速度改善で浮いた効果をこれまで見送っていた重い機能や改善に取り組むが使いすぎないようにする
これらの点は普段の開発における重要な学びとなりました。
機能的凝集の概念を用いて複数ロール、類似の機能を多く含むシステムのフロントエンドのコンポーネントを適切に分割する
NoritakaIkedaさんがセッションで話されたトークです。

機能的凝集の概念を用いて 複数ロール、類似の機能を多く含むシステムの フロントエンドのコンポーネントを適切に分割する - Speaker Deck
speakerdeck.com
フロントエンドのコンポーネントを開発するときに、暗黙的に避けていたパターンを凝縮度という概念で言語化してくれるようなトークでした。
新規作成画面と編集画面のようにぱっと見同じ画面になっているが、デフォルトの値があったり、ボタンの名前が違うような、些細な違いがあるページについての設計に悩むということは過去に何度かありました。 このトークで紹介された機能的凝縮を元に分割すると、Page側がそれらの違いによる責務を持ち、下のコンポーネントに論理的凝縮がないような設計になり、シンプルで保守性が高い設計になります。
このトークでの内容を元に、コードの説明やレビュー時に具体的な議論ができるようになりそうです。論理的な凝縮にはならないように注意したいです。
登壇の感想

React19で変化したuseReducerの型から学ぶTypeScriptの型推論 | TSKaigi 2025
TSKaigi 2025 のスピーカー、トーク情報です。
2025.tskaigi.org
Day2の14:00〜14:30のLT枠で登壇しました。テーマは「React19で変化したuseReducerの型から学ぶTypeScriptの型推論」でした。 5分という短い時間でしたが、React19でのuseReducerの型の変更点を中心に、TypeScriptの型推論について解説しました。
かなり緊張しましたが、声が小さすぎたり、途中で飛んでしまったりすることもなく、無事に発表を終えることができました。 発表直前の緊張感や、発表後の緩和はなかなか経験できないもので、貴重な体験でした。
スライドの右上に、より踏み込んだ解説をしたブログへの2次元バーコードを配置していましたが、リンクが間違っていたようで準備不足だったと反省しています。
React19で変化したuseReducerの型から学ぶTypeScriptの型推論
@types/reactのバージョン19ではuseReducerの型の変更が行われました。これまではreducer関数から状態の型を推論していましたが、バージョン19からはreducer関数と初期値から状態の型を推論する形に変更されました。この記事では、この変更を元にTypeScriptにおける型の推論方法について提案します。
k8o.me
応募したときは5分も話せるかなという気持ちがありましたが、実際に構成を考えていると圧倒的に時間が足りませんでした。 もう少し時間があれば、useReducerとその型についての踏み込んだ解説、useReducerを元にしたTypeScriptの型推論について深く言及をしたかったです。
発表の練習を何度か見てもらって、スライドの内容をブラッシュアップしてもらったり、発表の流れを確認してもらったりしました。 それによって発表の質が格段に向上したと感じています。練習を見ていただいた皆さん、ありがとうございました。
今回の発表は自分が話すことに精一杯でしたが、次回は参加者の方々に何かを感じてもらえるような発表を目指したいです。
まとめ
また参加したいと思えるような、全体としてとても充実したカンファレンスでした。運営、登壇者、参加者の皆さんに感謝申し上げます。
私が興味を持つ分野の大きなカンファレンスのうち、次回開催されるのはフロントエンドカンファレンス東京でしょうか? 都合が合えば、参加したいです。