こんにちは!チームラボフロントエンド班所属の志田と宇根です!
2025 年 5 月 23-24 日、東京都 ベルサール神田にて開催された「TSKaigi 2025」に現地参加してきました。
そして今回チームラボフロントエンド班からも LT 登壇者が選ばれています!
本記事は 2 日間の現地参加レポートとなります。
オンラインで参加されていた方や TSKaigi がどんなイベントか気になる方はぜひご覧ください。
また記事の最後に公開されている資料を可能な限りまとめていますので、気になる方はご参照ください。
TSKaigi とは
TSKaigi 2025 は、プログラミング言語 TypeScript をテーマとした技術カンファレンスで、業界の最新動向や技術トレンドを学ぶことができました。
なんと、TSKaigi は名前に TypeScript(TS)が含まれるカンファレンスの中では世界最大の規模になるそうです。
その称号に違わず、両日セッション・企業ブースともに大盛況でした!
当日の様子
スポンサーブース
スポンサーブースは 2 階の受付付近と、3 階の 2 箇所に設けられていました。
各社ブースはとても賑わっており、企業紹介だけではなく、TypeScript の型クイズや各社ノベルティなど、ここだけでもとても楽しめる空間になっていました。
スタンプラリーもあり、各社ブースを回って全てのシールを集めると豪華景品があたります。
(ちなみに我々は全員はずれました 😢 当たった方おめでとうございます)
発表会場
発表会場は 3 つに分かれており、それぞれの会場でオンライン配信が行われていました。
↑ 遠くの席の人にも見えやすいように小さなスクリーンも用意されていました!
また、Anthony Fu さんによる招待公演では会場内のスクリーンにリアルタイムでの自動翻訳字幕が表示され、英語での聴講に慣れていない方でも内容を理解できるように工夫されていました!
その他
また参加するだけでたくさんのノベルティがもらえたり、豪華なお弁当もあり、満足度が高かったです。
(お弁当はすこし余りがでて 2 つ食べた人もいたり…?)
2 日目の終わりには懇親会が設けられており、登壇者聴講者含めみんなで楽しめる場となってました。
それにしてもご飯が豪華!
チームラボからも登壇者が!
今回、チームラボからは elecdeer さんのプロポーザルが採択され、LT 登壇を行いました!
「推論された型の移植性エラー TS2742 に挑む」というタイトルで、パッケージが出力する型定義ファイルを適切に参照できない際のエラーについて、その原因と対処を発表しました!
発表お疲れ様でした 👏👏👏
参加してみての感想
typescript-go に関連したコンパイラ周りの話や、最近目まぐるしい進化をとげている AI を活用した話題も多く見られ、TypeScript を扱う技術者にはとっても価値のあるイベントだったと思います!
またノベルティやスポンサーブースも充実していて、発表聴講以外もとても楽しめるイベントになっていました。
まだ参加したことが無い方はぜひ一度足を運んでみてはいかがでしょうか。
次回の開催もとても楽しみです!!!
TSKaigi 2025 登壇資料まとめ
登壇者のタイトルと資料、および社内のメンバーが聴講したセッションの感想も一部記載しております。
Day1 トグルルーム
The New Powerful ESLint Config with Type Safety
前半ではv9.0.0でリリースされたFlat Configや周辺ツールについて紹介いただき、後半ではESLintはJavaScriptのリンターとしての役割にとどまらず、Formatter、Codemod、他の言語のリンターとしてAST Toolkitとしての側面についての解説がありました。
発表を聞いて、さらにESLintの活用の幅を広げていきたいと思いました!
checker.ts に対して真剣に向き合う
撤退危機からのピボット : 4 年目エンジニアがリードする TypeScript で挑む事業復活
推し活を支える Angular アプリ量産体制
紹介されていた事業内容の面白さもさることながら、スピード感を持ってマルチテナントサービスを提供していく上で、どのようにAngular Schematicsを活用されているかのお話が大変興味深かったです。
生成 AI 時代にフルスタック TypeScript の夢を見る
AsyncAPI を使って Pub/Sub を型安全にする
TypeScript で実践するクリーンアーキテクチャ ― Web からも CLI からも使えるアプリ設計
堅牢なデザインシステムをつくるための TypeScript 活用
デザインシステムはデザインに制約を与えるもの、という切り口からTypeScriptの型との類似性に着目し、エンジニアがデザインシステムのルールを守るための仕組みをTypeScriptの型で実現するという発想は大変納得感があり印象的でした。
同一のpx数のスタイル変数(spacingとradiusなど)を混同させないように、branded typesを使用して型レベルで制限するテクニックなどは参考になりました!
AI Coding Agent Enablement in TypeScript
TypeScript と React で、WAI-ARIA の属性を正しく利用する
roleにあっていないaria属性を付けてしまうのはあるあるなミスなので、怒られるようになりたいですね。基礎的なコンポーネントでaria-attribute-typesを使って型を付けるの、やってみたいです。
TypeScript とは何であって何でなく、誰のもので、どこへ向かうのか
急速に変遷するTypeScript周りのツールチェーンに付き合っていくために、技術選定のための審美眼を鍛えておく必要があるということにはハッとさせられました。
システムやツールの性質を正しく理解することと、どのようなコミュニティにより開発が行われているかを把握しておくようにウォッチしておこうと思いました。
Rust 製 JavaScript/TypeScript Linter におけるプラグイン実装の裏側
Rust製LinterのPluginについて概説していただくような発表内容でした。最後にBiomeのメンバーとして「欲しいリントルールあったら僕に声をかけてくれたらと思います」とおっしゃっていたのが印象的ですが笑、GritQLは自分でも試してみたくなりました!
Day1 アセンドトラック
高度な型付け、どう教える?
JSで型を表す擬似的なコードを書き、デバッグしながら学んでいく、という手法の発表でした。
新しいメンバーへのコーチングで参考になりそうです…!
静的解析で実現したいことから逆算して学ぶ TypeScript Compiler
TypeScript Compilerの概念的な整理から実践までとてもわかりやすく噛み砕いて発表いただいた印象です!コードリーディングのお供にさせていただきます!
Language Server と喋ろう
Language Server ProtocolはASTなどの方法に比べ、高水準で扱いやすく言語への依存が少ない方法ということで、選択肢が広がりました。
参照関係見たいだけの時はLSP使った方法を試して見たいです!
推論された型の移植性エラー TS2742 に挑む
TSConfig Solution Style & subpath imports でファイル単位で型を切り替える
主要ライブラリの実例に学ぶ、TypeScript で実現する型安全な座標定義
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
コンポーネントライブラリを使ったアクセシブルな実装パターンについて発表で、Speech to Textをご自身で用意されていたのが印象的でした!
AWS Lambda を TypeScript で動かして分かった、Node.js の TypeScript サポートの利点と課題
fast-check と neverthrow の PBT+Result 型で堅牢なビジネスロジックを実現する
プロパティベーステストについて他のプログラミング言語では聞いたことがあったのですが、fast-checkを使ったJS/TSは初めて聞いたので勉強になりました!Result型との組み合わせでの具体的なPros&Consもとても参考になります。
Interface vs Types 〜型推論が過多推論〜
Wasm を用いて他言語資産を TypeScript で活用する
型パズルを好きになるために、競プロを型システムだけで解いてみることにした
タイプレベルリファクタリング奮闘記〜この「型パズル」は読めません!〜
Day1 レバレジーズトラック
スキーマと型で拓く Full-Stack TypeScript
Signal と Observable―新たなデータモデルを解きほぐす
TSConfig から TypeScript の世界を覗く
TSConfigの全体像の話から、strictFunctionTypesを例に変性についてわかりやすく解説いただいた発表でした。
学生でもここまで出来る!ハッカソンで爆速開発して優勝した話
『Python→TypeScript』オンボーディング奮闘記
転生したら TypeScript の Enum だった件~型安全性とエコシステムの変化で挫けそうになっているんだが~
URLPattern から始める Web フレームワーク開発入門
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
Valibot Schema Driven UI – ノーコード Web サイトビルダーを実装してみよう!
Rust 製 JavaScript Engine の TypeScript サポート
TypeScript だけを書いて Tauri でデスクトップアプリを作ろう
型安全な Drag and Drop の設計を考える
GitHub Actions を TypeScript で作ろう!
Day2 トグルルーム
TypeScript ネイティブ移植観察レポート TSKaigi 2025
TypeScriptチームがCorsaに移行するまでにどのような経緯があったのか、今後どうなるかについて広く深くまとめていただいてとても説得力がありました。また、「コストをかけて取り組みの説明に臨んでいる」という部分は意識していなかったので、ハッとさせられました。コミュニティのことを考えてくれるのが伝わってきますね。
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
CSS Modules Kitこれを待っていました。開発の中でFind All Referencesを使えないのは結構不便だと感じたことがあるエンジニアは多いはずです。
Language Service Pluginを利用して解決した手法を紹介されていて勉強になりました。
複雑なフォームを継続的に開発していくための技術選定・設計・実装
バックエンドのコードファーストな OpenAPI スキーマ駆動開発
バランスを見極めよう!実装の意味を明示するための型定義
PandaCSS でつくる、型で守られたスタイリング基盤 ~ TypeScript × デザインシステム管理の実践アーキテクチャ~
PanndaCSSの存在は知っていたが、使うことでのメリットがかなり多いことがわかりました。
チーム開発において、型安全なスタイリングは初心者にも優しく、一貫性と再現性を担保できるので実際に自分も利用してみようと思いました。
TS でシステムが堅牢になっていくさまをスポンサーになるたびに報告 〜型定義から始めるリファクタリング編
技術書をソフトウェア開発する – jsprimer の 10 年から学ぶ継続的メンテナンスの技術
ts-morph で、人間も編集できるコード生成を実現しよう!
実際の業務でもよくある状況なので、自動生成でここまで出来るんだ!と大いに参考になりました。tsgoとts-morphの今後は要チェックですね…
機能的凝集の概念を用いて複数ロール、類似の機能を多く含むシステムのフロントエンドのコンポーネントを適切に分割する
UIコンポーネントでありがちな論理的凝集をどう排除していくかを実際のコード例と示し合わせて説明されていたため大変わかりやすかったです。
特に、実際には論理的凝集を排除しづらいケースについてしっかり説明されていた点が大変参考になりました。
TS 特化 Cline プログラミング
Agent Codingの挙動とうまくいくプロンプト、うまくいかないプロンプトが巧みに言語化されていて、「なるほど…」「あるある…」と頷き続けた発表でした。ご紹介いただいたプラクティスは真似させていただきます!
型がない世界に生まれ落ちて 〜TypeScript 運用進化の歴史〜
Type Challenges に PR を出して新しい問題を追加した話
型システムを実践で活かせていない悩みを持っていたのでType Challengesやってみようと思いました。
もちろん継続ありきですが、量が質に転化する、っていい言葉だなぁと。
(Maintainerおめでとうございます🎉)
Proxy と TypeScript のおいしい関係
普段書くコードではProxyを使うことはまずないですが、こういうProxyがバッチリはまるユースケースをみると気持ちよいですね。
Panda-CSS はどのように型安全にしているのか
Day2 アセンドトラック
フロントエンドが TypeScript なら、バックエンドは PHP でもいいじゃない
Pragmatic Functional Programming in TypeScript
TypeScriptによるバックエンド開発において、関数型プログラミングの概念やDmitrii Kovanikov 氏の提唱する 5 つの原則を実務で活用するために、どう理解したら良いのかという発表でした。
事後条件・不変表明という軸で整理することで、少し近寄りがたい概念の説明がより身近なものになったと思います。
型システムを活用した ESLint カスタムルール開発入門 〜固有ドメインにおけるコーディング規約を開発する〜
VueUse から学ぶ実践 TypeScript
型推論の扉を開く―集合論と構造的型制約で理解する中級へのステップ
TypeScript AST と JSDoc で実現するコードの自動削除
これは型破り?型安全?真実はいつもひとつ!
Lookback TypeScript ESM support and what should we do now.
ESMとCJSが入り交じっている現状で、どのようにTypeScriptをビルドすればよいのかが密度高く語られていました。
今後迷ったらこのスライドを見に行くと思います!
“良い”TS のコードを書く為のマインドセット
令和最新版 TypeScript での npm パッケージ開発
コンパイルオプションで変わる型世界
TypeScript の module オプションを改めて整理する
Project References を活用した実行環境ごとの tsconfig 最適化
Day2 レバレジーズトラック
TypeScript と Vercel AI SDK で実現する LLM アプリケーション開発:フロントエンドからバックエンド、そして Chrome 拡張まで
feature flag 自動お掃除のための TypeScript プログラム変換
Web Streams API の基本と実践、TypeScript での活用法
Result 型、自前で書くか、ライブラリ使うか
型付け力を強化するための Hoogle のすゝめ
React19 で変化した useReducer の型から学ぶ TypeScript の型推論
クラサバ境界を失った現代 TypeScript コードベースに秩序をもたらしたい
君だけのオリジナル async / await を作ろう
TypeScript 製 IaC ツールの AWS CDK が様々な言語で実装できる理由 〜他言語変換の仕組み〜
ts-morph 実践:型を利用する codemod のテクニック
declaration merging の威力:ライブラリアップデート時の書き換え作業を 90%短縮するテクニック
ライブラリのアップデートはつまづいた時の作業が長くなる印象があり、わざと型エラーを発生させて影響箇所を一覧かできるのは非常に便利と感じたと同時に、なるほどなあと思いました。
バリデーションライブラリ徹底比較
Standard Schema: スキーマライブラリの統一規格とは何か
- 登壇資料見つからず(TSKaigi トーク詳細)
Standard Schema初めて知りました、お恥ずかしい…。共通の仕様があることでツールの開発者も利用者側も大きなメリットですね
Views: 0