TSKaigi Hokuriku 2025 に参加・登壇しました

こんにちは!ファインディのTeam+開発部の大石(@bicstone)、甲斐(@karukan013L23)です。先日、ファインディは2025年11月23日に石川県金沢市で開催された「TSKaigi Hokuriku 2025」に協賛しました。

今回は、Findy Conferenceメンバー、DevRelメンバー、Team+開発エンジニアの6名で参加しました。
本記事ではTSKaigi Hokuriku 2025において印象深かったセッションの紹介や、登壇・ブース出展などの活動内容を紹介します。

この記事は 🎄ファインディエンジニア #2 Advent Calendar 2025 3日目の投稿です。

adventar.org

TSKaigi Hokuriku 2025について

TSKaigiは日本最大級のTypeScriptをテーマとした技術カンファレンスです。
石川県金沢市のホテル金沢にて、2025年11月23日に開催されました。

hokuriku.tskaigi.org

印象深かったセッション

興味深いセッションが多くありましたが、その中でも特に印象に深かった4つのセッションを紹介します。

TypeScript 6.0で非推奨化されるオプションたち

hokuriku.tskaigi.org

TypeScript 6.0は7.0に向けた準備としての側面が大きいバージョンであり、機能追加というよりメンテナンス性向上のための仕様の整理とパフォーマンス改善に重きを置かれていることについて学びました。
target: es5へのトランスパイルやmoduleResolution: classicなど、非推奨になるオプションを見ると今の開発では使われなくなりつつあるものが多く、現代の環境に合わせた変更となっています。こうして廃止されていくオプションを見ていると、TypeScriptとその周辺環境の移り変わりの歴史を垣間見ることができ面白かったです。

非推奨になるもの以外に、alwaysStricttypesrootDirなどデフォルトの動作が変更になるものがあるため、移行する際は注意が必要です。
非推奨となるオプションが廃止されるTypeScript 6.5までまだ猶予はありますが、徐々に対応を進めていきたいです。

tsc --init の設計思想の変化とその背景を追う - “教育的”アプローチから実用性重視への転換

hokuriku.tskaigi.org 元々tsc --initで生成されるtsconfig.jsonは全てのオプションと大量のコメントが出力されていましたが、これらがどう見直されたかについて学びました。
ES Modulesを推進したいのにCommonJSの設定がデフォルトになっていたり、テキストの壁と表現されるほどの大量のコメントアウトされたオプションが表示されるなどの課題がありました。
新しい方針ではコメントアウトされたオプションを削減し、必要最小限かつ推奨される設定のみを含むシンプルな設定に変更されました。

こちらのIssuetsc --initのアップデートに関する議論されています。手元で新しいtsconfig.jsonを確認しつつIssueを覗いてみると面白そうです。

アルゴリズムの専門家と挑むフロントエンド実装 − 複雑なロジックを支える設計とパフォーマンス最適化

hokuriku.tskaigi.org

今回初の取り組みであるチーム発表のセッションです。チーム発表は、同じプロジェクト・チームでの取り組みを、異なる立場・役割の2名がそれぞれの視点から語る形式となっていました。本セッションはアルゴリズムの専門家とフロントエンドエンジニアの組み合わせの登壇となっていました。
それぞれの専門性を活かしつつ、共同資産として活用するためのWebAssemblyの採用は興味深かったです。WebAssemblyとJavaScriptのメモリ構造の違いや、ロジックをWebAssemblyとフロントエンドのどちらで実装するかの判断軸など、それぞれの立場からのお話を聞くことができました。

次回以降チーム発表のセッションがあるかは分かりませんが、面白い形式だったので次回以降も枠があると嬉しいです。

Welcome to the “Fantasy Land” 🧚 − 代数的構造をめぐる冒険 −

hokuriku.tskaigi.org

このセッションでは、プログラミングにおける代数的構造とFantasy Landという仕様について紹介されました。代数的構造とは、集合と演算に対してどのようなルールを満たすのか定めるものです。
具体的な例を挙げると、統合律(どの順序で演算しても結果が変わらないという法則)と単位元律(単位元eと演算しても、元の要素aの値が変わらないという法則)を満たすと、モノイドという代数的構造になります。

統合律
a・(b・c) = (a・b)・c

単位元律
a・e = e・a = a

TypeScriptで表現すると、次のような実装になります。

// T: モノイドの要素の型
interface Monoid<T> {
  // 単位元(e)を返すメソッド
  mempty: () => T;
  // 二項演算(•)を行うメソッド
  mappend: (x: T, y: T) => T;
}

// 2. 文字列モノイドの実装 (単位元: ""、演算: +)
const StringMonoid: Monoid<string> = {
  mempty: () => "",
  mappend: (x, y) => x + y,
};

Fantasy Landは、プログラミングで頻出する代数的構造を体系化し、満たすべきルールをまとめた仕様です。TypeScriptのPromise型とResult型を例に共通の構造を探索していき、Fantasy Landで定義されたChainの仕様に抽象化していく過程は、普段とは違った視点でコードの構造を見ることができ面白かったです。

Fantasy Land自体はClassの利用を前提としているためすぐに活用することは難しいですが、より良い構造を探索するために代数的構造を活用するという視点はとても参考になりました。

登壇

ファインディからはCfP枠より大石、スポンサーLT枠より甲斐が登壇しました。それぞれの発表内容を紹介します。

大石: TS 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する

speakerdeck.com

TypeScript 5.9で利用可能となる新機能「import defer」を用いたパフォーマンス最適化について解説しました。

TC39 Stage 3の提案であるこの機能は、モジュールの「取得・解析」を即座に行う一方で、トップレベルの「評価(実行)」を実際にプロパティにアクセスする瞬間まで遅延させるものです。これにより、従来の動的import(dynamic import)のように非同期処理(Promise)を扱う複雑さを避けつつ、同期的な構文のままで初期ロード時のCPUコスト(TBT)を削減できる利点があります。

具体的な活用例として、モーダルのような「ユーザー操作時に初めて必要となる機能」の評価を遅らせるパターンを紹介しました。また、利用にはtsconfig.jsonの設定変更が必要であり、現時点でランタイムやバンドラは実験的な対応にとどまる点にも言及しつつ、2026年に向けた未来のパフォーマンス改善を一緒に考えようと呼びかけました。

甲斐: Nxはいいぞ! monorepoプロジェクトにおける 差分検知を活用した型チェック最適化

speakerdeck.com

Nxを活用したmonorepoプロジェクトにおけるCI実行時間の最適化について解説しました。「CIの実行時間が長すぎて辛い」という多くの開発者が抱える悩みに対して、Nxを用いた解決策を紹介しています。
Nxは、モノレポやアプリケーションのビルド、テスト実行、コード生成などの機能を備えた統合的なツールです。ファインディの多くのフロントエンドでも採用されています。主な特徴として、タスク実行の並列化、変更検知、キャッシュ活用によるCI実行の効率化があります。

Nxは変更があったプロジェクトと、それに依存関係のあるプロジェクトのみを対象にコマンドを実行します。これにより、typecheckなどのタスクの不要な実行をスキップでき、依存関係が小さい変更ほどCIが早く終わるようになります。
Nxの恩恵を最大限受けるためにはプロジェクトの依存関係を適切に整理することが重要です。コード量の増加によるCI実行時間の増加や開発体験の低下に課題を感じたら、ぜひNxのことを思い出してください!

ファインディの活動

ファインディはゴールドスポンサーとして協賛し、DrinkUpイベントの開催、ブース出展、Findy Conferenceによるイベント管理という形で支援しました。

DrinkUpイベント

DrinkUpイベントの集合写真
DrinkUpイベントの集合写真

ファインディはスポンサーとして、カンファレンス開催前日にDrinkUpイベントを開催しました。
20名もの方に参加いただき、一緒にTypeScript愛を語り合うことができました!

良い雰囲気で進められ、当日に向けてお互いに熱量を高め合うことができたと思います。また、初対面の方々が顔見知りになり、当日の交流がスムーズになったといった声もいただき、よい機会を作ることができたと感じています。

最後には恒例のじゃんけん大会をし、限定ノベルティをプレゼント。当選した方は翌日着用して会場に来てくださいました。

ブース出展

ブース出展の様子
ブース出展の様子

当日はスポンサーとしてブース出展をしました。
今回は、TSKaigiにちなんでTypeScriptに関する課題文が登場するタイピングゲームをご用意しました。

文言や称号は大石、甲斐をはじめとしたファインディのエンジニアで考案したものになります。称号はすべてダジャレにしていたり、課題文には様々なネタを仕込ませていたのですが、楽しんでいただけましたでしょうか?

Lv.5 型のカタリスト,Lv.4 型で世界を象る者,Lv.3 型を語る者,Lv.2 型と肩を組む者,Lv.1 型に片思い
称号の一覧

難易度を高めにしていたのですが、何度も挑戦していただくなど、前向きに臨んでいただき嬉しく思います。
称号 Lv.5 "型のカタリスト" を達成された方もいらっしゃり、大変盛り上がりました。

多くの方にプレイ・シェアをしていただきありがとうございました!

Findy Conferenceによるイベント管理

今回のTSKaigi Hokuriku 2025においては、イベント管理プラットフォームとしてFindy Conferenceを採用いただきました。
参加者の皆様からも申込、受付の体験が良いと好評をいただきました。オンライン配信も問題なくサポートできました。
TSKaigiをイベント管理プラットフォームとしての立場からも支援できたことを嬉しく思います。

さいごに

TSKaigiはとても暖かい素敵なコミュニティで、いち参加者としても多くの学びと交流の機会を得ることができました。
カンファレンスの開催にあたりご尽力いただいた、運営スタッフの皆様、関係者の皆様、登壇者の皆様に感謝申し上げます。

お知らせ

同日に参加したDevRelメンバーからも記事を投稿していますので、ぜひご覧ください!

note.com

ファインディでは一緒に働くメンバーを募集しています!

興味がある方はこちらから ↓ herp.careers