TSKaigi 2026 参加レポート - Bronzeスポンサーとして協賛し、弊社の髙橋が登壇しました!

はじめに

こんにちは。医療プラットフォーム本部 CLINICS 開発グループの吉岡です。

メドレーは 5 月 22 日・23 日にベルサール羽田空港にて開催された TSKaigi 2026 に Bronzeスポンサーとして協賛しました。 TSKaigi は、日本最大級の TypeScript をテーマとした技術カンファレンスで、2024 年の第 1 回から毎年協賛しています。 今年は現地参加 800 人、オンライン参加 900 人を超える規模で開催されました。

TSKaigi 2026 会場入り口 TSKaigi 2026 会場(ベルサール羽田空港)

TSKaigi 2026 では、TypeScript 7 で正式リリースとなる tsgo に関するセッションが多く見られました。 本記事では、弊社から登壇した髙橋のセッションと、その他に印象に残ったセッションについて紹介します。

弊社・髙橋の登壇「次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解」

Day2 の Leverages トラックにて、弊社の髙橋が登壇しました。

発表内容

発表では、まず型認識リントについて、typescript-eslint、Oxlint、Rslint、Biome の各リンターの対応状況が整理されました。続いて、Rslint に対して型認識カスタムルールを Go 言語で実装し、独自ビルドしたリンターバイナリで実際に診断できることを示したPoCのデモがありました。

特に勉強になったのは、こうしたカスタムルールは typescript-go の internal API に依存することになり、その追従コストを考慮する必要があるという点です。型認識カスタムルールで対応するのではなく、コード規約と設計を工夫して、ASTのみで判定可能なカスタムルールと型チェックで解決できないかを最初に検討すべきだという指針が示されました。

余談ですが、発表前日に Oxlint JS Plugin から tsgo の型情報を問い合わせる方法を実証した OSS である corsa-bind を発見し、当日の朝に急遽スライドを追加して臨んだという裏話もありました。

次世代リンターにおけるカスタムプラグインの今後の動向に注目していきたいですね。

発表中の様子

発表中の様子 発表中の様子

印象に残ったセッション

tscからtsgoへ ── DenoのTypeScript基盤はどう変わったか

登壇者: maguro さん

Phase 1 では、tsc にパッチを当てた JavaScript ファイルを Deno binary に埋め込み、V8 isolate 内で実行していました。

Phase 2 では、tsgo を fork して子プロセスで動かすことで、型チェック(deno check)が約 2.5 〜 2.6 倍に高速化されました。一方で、上流追従と LSP 対応のコストが重いことが課題となっていました。

そして現在進行中の Phase 3 では、fork をやめ、Deno 側のソースを公式 TypeScript が読める形に materialize して、npm の公式 TypeScript に処理させる方針へと進んでいます。

「fork も再実装も避けたい」という制約の中で公式 TypeScript への統合を進める Deno の方針が印象的でした。

TS 7: How We Got There

登壇者: Jake Bailey さん

TypeScript チーム本人による基調講演で、TypeScript コンパイラを Go 言語へ移植した背景が語られました。セッションでは tsgo のデモが行われ、従来 2 分ほどかかっていた型チェックが 10 秒に短縮される様子が示されました。

コンパイル時の処理は Parse、Bind、Check、Emit の順で行われます。特に印象的だったのは、Checker で生成される型情報を Checker 間で共有しないことで、並列実行時の同期オーバーヘッドを避けて高速化を実現している点です。

CLINICS でもローカル環境で tsgo を使用しており、型チェックを高速化することで、AI 開発のフィードバックを速めています。

制約と時代から読み解くTypeScriptコンパイラ設計史

登壇者: Yoshiaki Togami さん

TypeScript コンパイラは、AST が semantic 情報を背負い、循環参照だらけの構造になっているという独特な構成を持っています。

Web の歴史の中で Ajax 革命や V8 / Chrome / Node.js の登場により JavaScript で大規模なソフトウェアが書かれるようになり、Microsoft 内部でも Office などの Web 移植が迫られていました。一方で、当時の JavaScript 向け開発ツーリングは貧弱で、大規模開発の体験が成立しなかったため、それを解決するために TypeScript が開発されました。

さらに、TypeScript には IDE での高速な応答が要件として課せられました。本来であれば immutability と親アクセスを両立する仕組みが必要でしたが、当時の JavaScript では実現できず、結果として AST に直接 symbol や parent を書き込む現在の構成に落ち着いています。

tsgo ではネイティブ化と共有メモリ・マルチスレッド化で約 10 倍の高速化が実現されています。歴史を遡ることで、現在の TypeScript がなぜこのような設計になっているのかという背景を理解できました。

まとめ

本記事では、弊社・髙橋の登壇と、TSKaigi 2026 で印象に残ったセッションについて紹介しました。

今年のメドレーからは、Bronzeスポンサーとしての協賛と髙橋の登壇に加え、運営スタッフとしても德永と山河の 2 名が TSKaigi 2026 に関わりました。

TSKaigi 2026 に参加したメドレーメンバー TSKaigi 2026 に参加したメドレーメンバー

メドレーでは今後も TypeScript コミュニティの発展に貢献し、社内での実践を続けていきます。

過去にスポンサーとして協賛した TSKaigi の参加レポートはこちらです。

We’re hiring

メドレーでは一緒に働く仲間を大募集しています! カジュアル面談も実施しておりますので、「お話だけでも聞いてみたい!」「ちょっと雑談してみたい!」でも構いませんので、お気軽にお問い合わせください!