👻

TSKaigi2025に参加してみたので現地で動いて感じたモノを投稿してみる【参加レポート】

に公開

はじめに

どうも、ひものと申します。
オフラインでカンファレンスに参加するのはKotlin Fest 2024を初にして最後だったのですが、前回しっかりとしたレポートを書けていなかったな~と思ったので、知見をいい感じに残すのと今後のカンファレンス参加時にレポートを書くのに慣れるため記録に残していこうと思います。

この時点での私のTypeScript理解度

  • Webフロントで軽く触っている(仕事始めたて)
  • 個人で開発することもあったけどTypeScriptの文脈に深い造詣はないので学習中

目的

  • ケースごとにTypeScriptがどういう文脈で使われているか、またその設計思想の理解
  • 良好にTypeScriptで開発を行うための周辺視野の獲得
  • せっかく現地参加するのだからAsk the Speakerしたい

こんな感じである程度整理をした後に参加をしました。
知見や細かい感想などもある程度書きますが、それそのものに焦点を当てたものは別の記事に改めてまとめるかもです。

学生支援制度について

今回TSKaigiに参加するにあたって、学生支援制度を利用させていただきました。
同じく学生支援制度を利用している方とのスカラシップランチもご用意していただくなど交流機会も作っていただき本当に感謝してもしきれません。
この場をお借りして厚く御礼申し上げます。

TSKaigi2025 学生支援企業様

株式会社TOKIUM
株式会社ドワンゴ
トグルホールディングス株式会社
レバレジーズ株式会社
株式会社TwoGate

到着後

予め秋葉原の某ホテルに宿泊していたので、徒歩にて現地に到着。
トグルルームの前にはずらりとスポンサーブースの準備が進められていましたが、とりあえず席を取りたかったので適当に座りオープニングトークを聴講。

印象に残ったセッション

The New Powerful ESLint Config with Type Safety

内容はFlat Configから始まる様々なESLintにまつわる強力(シンプル・便利のようなニュアンスを含む)な記述や活用法に関するお話でした。

eslint v9.18.0からTypeScriptを使用したESLint Configの記述(eslint.config.ts)がサポートされるようになったようで、migrationもnpxコマンド一つでサポートされると教えてくださいました。ただ実際どこまで自分がモノに出来るかは分からないため適宜検証していこうと思います。

中盤からは「ESLintはLinterに留まらない使用法ができる(具体的には強力なAST(抽象構文木)ツール)」というタイトルから始まった様々な(私にとって)未知の使用用途に対する解説でした。

Formatterとしての使い方は勿論知っています(よく使わせていただいている)が、Linterとしての範囲の拡大と、コード編集ツールとしても使えるという内容のプレゼンがリスナーを一番驚かせていました。
ASTツールとして規定範囲のコードを解析し、予めプログラムされたリファクタコマンド(詳細はantfu/eslint-plugin-commandより)をエディターから打つことが出来るようです。AI-Agentによるコードライティングが取り上げられやすい印象を受ける昨今ですが、「人間が全くコードを書かなくなる未来はまだ遠い」と考えているため、こういった「堅い」イメージを浮かべるコード編集技法がESLintにあることを知れて面白かったです。

当分は私用の範囲にとどまる(業務利用の範囲で適切な提案が出来る自信がちょっとない)だろうが、ぜひ使ってその献身に貢献を示したいと思う所存です。

詳細はこちらより。正直私の感想見るよりこっち見た方が早い
https://talks.antfu.me/2025/tskaigi/

P.S.ラップトップに残したメモが拙い英語力を示していたが、Anthony氏の英語がかなりクリーンで聞き取りやすかったため所々理解できました。ありがとうAnthony氏。冒頭は東京に引っ越してから二か月で頑張って勉強しているという日本語を使って挨拶をしてくださり、なんだかほっこりする気分を味わいましたね。

堅牢なデザインシステムをつくるためのTypeScript活用

聞きたいと思っていたセッションの会場がパンパンすぎて座れなかったり、昨日以前の疲れが取り切れていなくて休憩室にて爆睡したりなどしてたため、次に聞けたのはこのセッションからでした。

内容はデザインシステムをいかに「守らせる(強い言い方だけど多分こういうことだと思います)」かという部分に焦点を当てたものでした。

前提として「デザインシステム = ルールセット+ドキュメント+実装であり、再現可能なデザインを目指すもの」を定義し、TypeScriptでどうやって制約を上手く付与していくかについて解説してくださっています。

そもそも知らなかったBranded Typeや、GitHub Actionsの活用(デザイントークンの書き出し)など検証してみたいことが沢山出来ました。

「LLMを使ってドキュメント更新の『痛み』を減らしていこう」みたいな話もあって、手を届かせるのが面倒な部分をLLMに代行あるいは手助けしてもらうアプローチが増えたなぁと思うなどしています。

Enable AI Agent in TypeScript

AIエージェントをTypeScriptで活用するにあたって、明示的なドキュメントや参照可能な型を用意することで開発速度を向上させられるという内容でした。

AI AgentとTypeScriptの組み合わせはやはりエージェントが参照可能で明確なOK・NGを作ってTDDを回す形を作っていくのが一番効率が良い形になるのではないかと考えています。

自分の個人開発で部分的に使用してレポートを書きます。

セッションを全体的に見て

AIエージェントとの組み合わせや構文木に関する内容が多く、開発スピードと質を上げていくためにLintやTestの整備をしっかり進めていくのが今のトレンドなのかなと浅い感想を抱いた次第です。

でもふと振り返ってみると、これらの対策は人間が効率的にコードを書くために凝りたい部分を突き詰めているだけでは?という疑問が発生しました。
結局見て見ぬふりをしていた未整備な道をAIのためにちゃんと舗装しなきゃいけないという結論な気がするので、人間のためにもちゃんとしたドキュメント・Lint整備・意図に沿ったTDDの実行など開発体験上やった方が良いことを突き詰めてみて経過を観察してみようと思います。

企業ブース

企業ブースでは20近くの多くの企業がブースを開いており、様々な企業を知るキッカケになりました。

会社名がスッと出てこないのですが

  • 不動産営業のための法基準を守った上で最大面積を取った建物の3Dモデルを作成する
  • ストックオプションの管理
  • VR向けの光学トラッキングシステム(指の精度が凄まじかった)

などなどパッと見て知らない・思いつかない技術の活かし方をしている企業様が多く見られました。こういった引き出しはあればあるだけ損はないので常に意識して頭に叩き込むようにしていますが、そういった意味合いでも今回のTSKaigiは実りが多かったです。

懇親会

Day2の最後に懇親会が開催されていたのですが、割と技術関係なくただ交流しただけな気もしています。
がっつり内容について話したりするのはAsk The Speakerで充分話せていた(何気始めて行ったので緊張しました)ので純粋に交流目的で色んな方とお話しに行きました。

企業の方のクラフトビールが出てきてやたら美味かったのと話した人の記憶しか覚えていなくて「これで良いのだろうか」とも思いますが、親交を深めることはできたのでいいのかなとも思います。

おわりに

TSのコミュニティイベントにガッツリ参加するのはフロントに参入したのが最近なのもあって初めてだったのですが、セッションもとても分かりやすく説明してくださり大変勉強になりました!

こうして楽しめたのはカンファレンス運営の方々が一生懸命コンテンツを作ってくださったおかげです。
また、学生支援制度を通じてご支援を頂いた企業様にも心より感謝申し上げます。

本当に、本当にありがとうございました!!!!

P.S.次回はスタッフ側で参加してみたいなぁ...

Discussion