TSKaigi2026に行って思ったこと10選
2026年5月22日(金)-23日(土)、ベルサール羽田空港で開催された TSKaigi 2026 に現地参加してきました。せっかくなので、現地で感じたことを振り返ってまとめていきます。
1. 各社のアンケートパネルがインサイトに富んでいる
各社ブースの展示、毎年毎年エッジが効いてて良いですね。
「うわー、これ分かるな〜」とか「お恥ずかしながら自分には分からないネタだ…」などと考えながら、遊びとしても学びとしても面白かったです。せっかくなので、アンケートに書かれた回答をひとつひとつ調べたり結果について考察したりしたいものです。
特に気になったのは、Dress Codeさんの「TypeScriptを使った開発で、減ったことを教えてください」というお題です。「型パズル」の回答がいくつも貼られていたのが印象に残っています。型パズルってそんなに浸透している表現だったんですね…。
2. ユーザーとして自分も使ってみたいサービスが見つかる
僕が今回TSKaigiに参加した主な目的は、TypeScriptの知見を深めることと、エンジニア同士のつながりを作ることでした。ただ、各社のブースを回る中で、シンプルに「そのサービス自体が面白い」と感じる場面が多く、ブースの方にサービスについて聞くのを楽しみました。
たとえば、ニーリーさんの駐車場オンライン契約サービス。趣味で地域交通オタクをやっている僕としては、「月極駐車場」というワードに惹かれて足を止めました。
ブースのスタッフの方に話を聞いてみると、地域モビリティの課題や、このサービスがどう解決に貢献しているのかを熱く語ってくれて、自社プロダクトをこんな風に語れるエンジニアって素敵だなと思いました。
他にも、症状検索ができるヘルスケアアプリのUbieさん。自分にとっては「名前は聞いたことはあるけれど、正直使ったことはなかった」サービスでした。お話を聞いていて、自分も使ったほうがよさそうだと思い、休憩時間にアプリをインストールしてみました。いま治療中の病気のことを質問したり、自分の情報を登録したりしています。
(もちろんブースで「登録してください」と言われたわけではなく、せっかくの機会なので、興味本位で試してみたという感じです)
3. propsの設計を見直したくなる
印象に残ったセッションのひとつが、nabeliwoさんのpropsの設計についての話でした。
スライドでは、Reactで「商品カード」を作るときの例が紹介されていました。「読み込み中」「成功」「エラー」の3状態を扱いたいとき、つい次のように書いてしまいがち、という例です。
type ProductCardProps = {
isLoading: boolean;
error: Error | null;
data: ProductData | null;
};
一見良さそうに見えるのですが、これだと「isLoadingがtrueなのにdataが入っている」みたいな、あり得ない組み合わせも許されてしまうんですよね。
そうではなく、UIが取り得る状態のパターンをそのまま型に落としてしまおう、というのがスライドの主張でした。
type ProductCardProps =
| { status: 'loading' }
| { status: 'error'; error: Error }
| { status: 'success'; data: ProductData };
たしかにその通りだなあと思いつつ、これまで自分が書いてきたpropsはちゃんとそう設計できているか、と考えてしまいました。
サバイバルTypeScriptでいうと、判別可能なユニオン型のあたりですかね。セットで読み直しておきたいなと思いました。
4. ASTをちゃんと理解しておきたくなる
TSKaigiの各セッションで、ASTの話に触れる場面が思っていた以上にありました。ASTって概念としては理解しているつもりだったのですが、人に説明できるレベルまでは届いていないなあと、聞きながら感じていました。もう少し理解を深めておきたいところです。
特に覚えているのは、@Wakeupsloth さんの「次世代リンターで探る、tsgo時代における型認識カスタムルールの現実解」の登壇。なんでも型認識リントで殴るのではなく、まず「設計で消せないか」「標準で足りないか」を問うというお話。
このフローチャートに出てくる「AST-only lint」「型認識リント」みたいな話も、自分の中ではまだぼやけているところがあるので、このあたりも含めて、家に帰ったらちゃんと潜って理解を深めておきたいなと思います。
5. Branded Typesが熱い話題なんだなと感じる
TSKaigiのセッションでは、Branded Typesに関する登壇がとても多かったです。司会や登壇者も「Branded Types被りとなりましたが(笑)……」とネタにしていたほどでした。
(他にもあったかもしれません)
Branded Typesの背景や意義についてここまで丁寧に話してくれる登壇はなかなかないと思うので、登壇資料などはまた見返したいなと思います。
6. ESLint, Biome, Oxlintをどう使い分けるか考えたくなる
TSKaigiのOST(Open Space Technology)にて、「ESLint, Biome, Oxlint…結局どれ使ってる?」がテーマに挙がったり、それをアンケートパネルにしているブースもあったりと、lint周りの選定は今回のTSKaigiの一つの大きなトピックだったと思います。
それぞれの使い分けだったり、移行については各々悩んでいる印象でした。eslintとoxlintを併用する話も出てましたね。
7. どんなテックブログを読みたいか考えさせられる
8. 同窓会になる
昔お世話になった人がたまたまTSKaigiに参加していると分かり、会って「久しぶりです」となりました。近況報告って、いいですよね。懐かしい気持ちもありつつ、これからのことも楽しみになる時間でした。
リアルの同窓会でも「昔クラスにいたあの子、元気かな。LINEしろよ」みたいな話があると思いますが、そのエンジニア版もありますね。その場でLINEを送って、再来週Zoomで軽く近況報告することになったり、また今度会おうとアポを入れたりしました。
9. 「Xで見たことのある人だ」現象
たまたま話した人と「そういえばお名前は?」という流れになって、「あれ……?」となることが今回割とよくありました。
10. 次回は運営をやってみたくなる
弊社の @asahiXXXXXXXXX さんと @sosomuse さんが今回TSKaigiの運営をしていて、現地で動いているのを見ながら参加していました。次は自分も運営側で関わってみたいなと思いました。
最後に。今回TSKaigiの運営に携わってくださった方々、現地でお話しさせていただいた方、その後Xで繋がってくださった方、などなど本当にありがとうございました!
Discussion