こんにちは!開発本部プロダクト開発部(SDP)の末信、中澤、西川です。
昨年に続き、今年もTSKaigi 2026に参加してきました。参加したセッションのなかからいくつかピックアップして感想をお届けします!


ビジネスモデルから紐解く、AI+型駆動開発(omote)
AIが実装する時代になり、ビジネス要求をプロダクトへ反映させる速度が重視されるようになりました。これに伴い、ビジネスモデルへの依存を高めた設計が必要です。
ビジネスモデルが違えば型の重心(設計エネルギーを最も注ぐ場所)も変わります。このセッションでは型の重心を4つのパターンに分類し、整理されています。
筆者は社内で個人通知関連のシステムを開発しています。個人通知というのは、健康診断の結果や診療情報をもとに、紙のお手紙を送るためのシステムで、この業務では、「医療データドメイン」と宛名や住所のような「紙の通知物ドメイン」が含まれます。
この2つのドメインの扱いに苦労していたのですが、型の重心という説明がぴったりはまりました。「医療データドメイン」は「データ依存型」、「紙の通知物ドメイン」は「マーケットプレイス型」に分類され、これらを同じように扱ってしまっているため、うまく機能していなかったのです。
具体的な解決策はこれからですが、なぜこの2つのドメインの区別が難しいのか、課題の本質を理解できたのは大きな収穫でした。(中澤)
業務に残された「良くない型」で考える「TypeScriptの難しさ」(Saji)
本セッションは、プロダクトに潜む as や @ts-ignore などを収集・分類し、そこからTypeScriptの限界や設計の歪みを紐解く内容でした。日頃から as や @ts-ignore が一定数あることは認識していたものの、これまで「何個あるか」を具体的に分析する意識がなかったため、重要な気づきとなりました。
セッション内で、ただ型エラーをリストアップするだけでなく、それぞれの分類ごとのアプローチ例までまとめられていたのが非常に良かったです。また、AIを活用することでこれらの分類が圧倒的にやりやすくなったというお話を聞き、これは自プロダクトでも取り組むチャンスだと感じ、さっそく弊社が提供している健康ポータルサイト「Pep Up」のコードベースで棚卸しを実践してみました。
分析対象を as @ts-ignore に絞り、生成ファイルを除く全コンポーネントを調査したところ、@ts-ignore 系が23件、as any が46件見つかりました。これらをセッションの分類フレームワーク(境界・内部 × 押し戻せる・戻せない)に当てはめてみると、意外にも「適切なアプローチで解消できるもの」が大半を占めていることが分かりました。
例えば、実問題として残っていた @ts-ignore の一部は global.d.ts の追加やテストコードの書き換えで今すぐ解消できるものもありました。また、as any が集中していた qs.parse(…)(13件)は同じ回避がされており、こちらは型ガード関数を共通化することで解消できそうです。
動いているように見える as any や @ts-ignore は放置されがちですが、ライブラリの型修正を隠蔽したり、仕様変更時に型システムが機能しなくなったりするリスクを孕んでいます。
今回AIを使って件数とパターンを一気に可視化できたのは、今後のリファクタリングにおいて大きな手がかりになりました。まずは即座に対応できる型修正から着手しつつ、新規の型妥協にはoxlintで理由コメントを必須化してみるなど、チーム全体での安全な型運用を加速させていきます。(西川 wazu)
TypeScriptの型はAIに届いているか?
AIエージェントにおけるLSP(コードジャンプなどの機能を標準化するプロトコル)対応の有無から深掘りし、結局TypeScriptの型はAIに型が伝わっていること自体よりもどう届くかが大事という発表でした。
エージェントごとにTypeScriptのセマンティクス探索能力は異なり、LSPに対応していても必ずしも活用されるわけではありません。Claude Code, Copilot は現状対応されていますが、発表者は、探索内容に応じてLSPが常に最善ではなく、grep + Diagnosticsで十分なケースもあるため、LSPが使えるかどうか自体よりも、タスクに応じた使い分けができるかどうかが実務では重要と述べていました。
私はClaude Codeを日常的に使っていますが、LSPやgrep + Diagnosticsの使い分けを意識できていなかったので今後気にして行こうと思えるきっかけになりました。AIのコストが上昇し続ける中、探索コストの最適化は軽視できない課題だなと感じています。
今回のTSKaigi にて、他の発表でも触れられていたBranded TypesやNarrow Typesなど、高度な型付けと組み合わせることで、人間にもAIにも意図が伝わるコードに近づけていきたいと思いました。(末信)
二日間を終えて
今年のTSKaigi 2026は、AIと型をいかに連携させるかという課題や、oxlint・TypeScript 7.0(Go製新コンパイラ)に向けた静的解析・型システムの進化に関するセッションが多く、どれも学びの多い内容でした。
ブースや懇親会では他社のエンジニアの方々とも交流でき、刺激をたくさんもらえた二日間でした!
今年も素晴らしいカンファレンスを作り上げてくださった運営・スピーカー・スポンサーの皆さんに感謝申し上げます!
来年も楽しみにしています♩
JMDCでは、ヘルスケア領域の課題解決に一緒に取り組んでいただける方を積極採用中です!フロントエンド / バックエンド / データベースエンジニア等、様々なポジションで募集をしています。詳細は下記の募集一覧からご確認ください。
まずはカジュアルにJMDCメンバーと話してみたい/経験が活かせそうなポジションの話を聞いてみたい等ございましたら、下記よりエントリーいただけますと幸いです。
★最新記事のお知らせはぜひ X(Twitter)、またはBlueskyをご覧ください!