まえがき
2025.05.24 に東京で開催された、"TSKaigi 2025 in 神田" のレポになります。
今回は学生支援制度として移動費を支援してもらえました。僕は遠方(福岡)からの参加になるので、運営の皆様には頭が上がりません。ありがとうございます!!
以下、参加した際の日記になります。
0日目
前日の夜、福岡から博多へと移動しました。
ちなみに宿泊先は Progate からお借りしている宿泊地(ハッカソンハウス)です。学生は申請さえすれば無料で使うことができたりします。とてもオススメ。
夜ご飯はちかくのラーメン屋に行きました。おいしかった。

1日目
さて、ワクワクの1日目です。
行きたいセクションは前日の夜に決めたりしました。基準的には「自分に身近な話題か」で決めてしまったので、若干学生感覚が残るチョイスになっているかも。すべてを詳解するには文字数(とぼくの体力)が足りないので、ダイジェストで書いていきます。
会場はベルサーレ神田!めっちゃ広い会場でよかった。

カンファレンス恒例の自己紹介付き名札。import 文をうまくもじって書いたように見えますが、ダブルクオーテーションの位置が逆です。Linter に怒られてください。

オープニング!めっちゃいい席を取れました。

さて、ここから発表に移ります。
まずは Anthony Fu(@antfujp)さんの発表!個人的に @antfu/ni などのツールでお世話になっているんですが、有名 OSS (Vue, Nuxt, ESLint...)の Commiter とのことで震えていました。逆になんでいままで知らなかったんだ。

内容は ESLint v9.0.0 から追加される Flat Config、それに付随した plugin の情報などでした。一番驚いたのは eslint-plugin-command かも。コメントを書いて ctrl+S するだけで linter がサクサク動いててもはや怖かったです。
次は「スキーマと型で拓く Full-Stack TypeScript」。ハッカソンでは Full-Stack TS(Remix, React + Hono)な構成に頼ることが多いんですが、通信部分にフォーカスし、なおかつ「継続的な開発」という視点も担保するという点で GraphQL を使用しているのは大きな発見に思えました。
いったん休憩を挟みます。昼食はいただいたしぐれ煮の牛肉弁当。そなえつけのピーマンと合わせて食べるのがおいしかったです。ちなみに「しぐれ煮」とは、つくだ煮にショウガを加えたものらしいです(ネット調べ)。

余談ですが、おべんとうの配布コーナーにメチャクチャデカいお重があり、そちらも一般向けに配られていたんですが、さすがに下々民が食べるにはあまりにもデカかったのでやめておきました。(↓こんなやつ)

昼休みを延長してスポンサー回り!一番面白かったのは型クイズのブース。皆さんも考えてみてください。(わかったら感想レターでこっそり教えてください)

僕も解きました。景品はコレ。企業特製の限定品らしくメッチャうれしいです。

ちなみに、回ってる最中に同行者(@Huyu2239)がデカぬいぐるみを当ててました。おめでとう。

さて、休憩も終わり後半戦。興味深かったのは LT の話でした。
まずはハッカソンについて発表していた方がいらっしゃったこと!ぼくもハッカソンよく出るので(比べていいかは分かりませんが)ちょっと親近感わきました。内容は「スキーマを先に定義して開発したほうがコンセンサス取りやすくていいよね~」という話。たしかに。REST API のデータスキーマの認識不一致でいつも痛い目を見ている私としては耳が痛い内容でした。
さらにもう一つ「転生したらTypeScriptのEnumだった件~型安全性とエコシステムの変化で挫けそうになっているんだが~」。タイトルがすでにオモロではあるんですが、こればっかりはスライド資料を見たほうが面白さがわかると思います。
ここで1日目は終わり。ちょっと体調不良だった部分もありすべては聴講できなかったんですが、学びのある内容でした。
ちなみに夜ご飯は後楽園のチーズハンバーグオムドリアでした。おいしかった。

2日目
さて、ここから二日目です。ちなみにスポンサーズスタンプラリーというものがあり、これを全部集めると抽選ができたりしました。

ぼくはハズレ賞でした。涙。

最初の発表は「TypeScriptネイティブ移植観察レポート」。主催者さんによる発表でした。TypeScript の最新動向(tsgo、それに対する移行)について知れたので良かった。
次は「フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない」。「カンファレンス間違えたか...?」と思うくらい PHP の話でしたが、バックエンドの選択肢としてはよさそう。
次は「Pragmatic Functional Programming in TypeScript」。関数型と、それを実務に落とし込むためのテクニックの話!関数型はフィーリングで知っているくらいなのであまり詳しくはないんですが、かなり参考になる話でした。特に Dmitrii Kovanikov 氏の提唱する 5 つの原則(Parse, don’t validate/Make illegal states unrepresentable/Errors as values/Functional core, imperative shell/Smart constructor)と、それに対する登壇者のアプローチは必見。
お昼休憩。2日目は学生とプラチナスポンサー企業によるスカラーシップランチでした!僕は N 高卒業生ということもあり、ドワンゴの社員さんと話せるのがうれしかったです。

余談ですが「よつさんのブログ(ココ)見てます!」という方がチラホラいたりして、若干恐怖を感じてます。ポエムが見られている。
さて、気を取り直して午後のセッション。最初は「ts-morphで、人間も編集できるコード生成を実現しよう!」。ts-morph 自体初めて聞いたんですが、まさかの初聞きが「TS のアップデートにより消滅しかけている」だとは思いませんでした。とはいえ、面白そうなので使ってみたい所存。
次は「君だけのオリジナル async / await を作ろう」!これは面白かったです。ジェネレータ式で async/await の処理を模倣するという内容なんですが、意外と深い部分まで踏み込まれていて面白い題材でした。ジェネレータ関数の使いどころのサンプルとしてよさそう。
さいごに「"良い"TSのコードを書く為のマインドセット」。タイトルに惹かれて聞きにきたクチですが、内容は「Soundness(健全性)とUsability(コード実行容易性)のトレードオフをしっかり考えて実装しよう」というものでした。ふだん感覚でやっていた部分が明文化され、すごくよいテーマだったと感じています。
セッションが終わった後は懇親会!!いちばんデカいホールに参加者が集まり、ワイワイごはんをつまみました。ここでほかの参加者の方と歓談する機会もあったりしてたのしかった~。

あと、スポンサーの Dinii さんから缶ビールを頂きました。フルーティで飲みやすい!今後リリースされるらしいのでお楽しみに。

感想
まず、移動に5万もかかるような遠方の学生を支援してくれる運営自体がすごい!!!本当に助かっています。ありがとうございます。九州の学生は「東京のイベント」というだけで普通にあきらめてしまうので、こういった制度があるのは本当にうれしい。
そのうえで、イチ TypeScripter としても非常に学びのある内容でした。もちろんセッションの内容もそうですし、「TypeScript を使ってこんな開発をしています!」という企業の内情が知れたのもおもしろポイントでした。宿題として持ち帰っている実装テーマもいくつかあったりして、これは帰省の便の中でたのしむ予定です。
さいごに、また来年 TSKaigi があったら、そのときはイチ参加者として楽しみたいです!!なんなら福岡に来てください!!!おねがい!!!!!!
【TSKaigi 2025 学生支援企業】
改めて、被支援学生として心から感謝しております!このような機会の場を設けてくださりありがとうございます!!!