Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TypeScriptの型はAIに届いている か?_shotaro
Search
UPSIDER, Inc. Tech&Product div.
May 21, 2026
93
0
Share
TypeScriptの型はAIに届いている か?_shotaro
TSKaigi2026にてShotaroさんが登壇する資料です。
https://2026.tskaigi.org/talks/24
UPSIDER, Inc. Tech&Product div.
May 21, 2026
More Decks by UPSIDER, Inc. Tech&Product div.
See All by UPSIDER, Inc. Tech&Product div.
AI時代におけるプロダクト開発のあり方 を考える_Akari
upsider_tech
0
16
品質を保ちながら、 プロダクトの核に迫るための取り組み_Tanaka Yoshihiro
upsider_tech
0
16
CxOを動かす会社の条件_Akanuma
upsider_tech
0
47
Temporalを用いた Sagaの実践とプロセスモデリング_konnさん
upsider_tech
0
63
決済基盤を作る人から見た、クレカの裏側_Yuya Tanaka
upsider_tech
0
310
【日経×TOKIUM×UPSIDER】課金・決済・経理DX開発者が語るAI共創で変わる開発と意思決定_Daisuke
upsider_tech
0
490
プロダクト開発現場における Claude Skills の育て方と活用事例_Murakami
upsider_tech
0
770
GASと私のここ一年_Sasaki
upsider_tech
0
26
EM Night Talks – After Conference_Ryutaro
upsider_tech
0
61
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing for Performance
lara
611
70k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
370
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
150
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
300
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
HDC tutorial
michielstock
2
660
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
390
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Transcript
TypeScriptの型はAIに届いている か? AIコーディングツール検証で見えた「届き方」の差 © 2026 UPSIDER.inc
自己紹介 中田 章太郎 (Shotaro Nakata) 株式会社UPSIDER Software Engineer 法人カードシステムをフルスタック TypeScript
で開発 日常のAIツールは Claude Code / Codex © 2026 UPSIDER.inc
あなたが使っているAIに、 TypeScriptの型は どこまで届いていますか? © 2026 UPSIDER.inc
今日話すこと 1. 「届く」を 3レイヤーで見る 2. 各ツールはどう接続しているか —— 対比で見る 3. 「経路がある」と「効く」は別
4. 実務で、型をAIにどう届けるか 対象: Claude Code / Codex / Cursor / GitHub Copilot / Gemini CLI(2026-05-16 観測時点) © 2026 UPSIDER.inc
「届く」を3レイヤーに整理 Text — ソースに書かれた型(型注釈・シグネチャ・JSDoc) Diagnostics — tsc / lint のエラー・警告
Semantics — hover の推論型 / 定義ジャンプ / 参照 / 呼び出し階層 LSP が代表的な経路 → 「型が届く」は Yes/No ではなく「どのレイヤーまで」 © 2026 UPSIDER.inc
Textだけでは見えない型情報 export function buildConfig(env: Env) { return { ...defaults, ...env.overrides,
resolvedAt: Date.now() }; } // hover → { apiUrl: string; retries: number; resolvedAt: number } → 推論された型は、hover のような Semantics 経由で初めて見える → TypeScript は「ソースに書いてあること」と「型システムが知っていること」がズレ やすい © 2026 UPSIDER.inc
各ツールは、どこにどう接続しているか ツール Semantics への経路 主な手段 Claude Code ◯ goToDefinition /findReferences
/hover 等を実装・公開済み GitHub Copilot ◯ goToDefinition /findReferences /hover 等を実装・公開済み Codex CLI ✗ shell + grep 。Semantics 系ツールはなし Cursor ✗ grep + embedding search Gemini CLI ✗ native未実装 → Text と Diagnostics はどこもだいたい届く。差が出るのは Semantics への接続 © 2026 UPSIDER.inc
届く側: Claude Code / Copilot 事実 Claude Code と Copilot
CLI は、ともに goToDefinition / findReferences / hover / documentSymbol などの LSP 系操作をツールとしてモデルに公開している どちらも、AI に Semantics へ届く経路を渡している 私の見立て → 少なくともこの2者は、Semantics への接続に価値がある前提で設計している © 2026 UPSIDER.inc
届かない側: Codex 事実 Codex CLI は shell + grep を中心に動く
少なくとも公開されている範囲では、Semantics 系ツールはない 現状の Codex CLI からは、LSP ベースの経路は確認できない © 2026 UPSIDER.inc
届かない側: Codex 事実 LSP統合を求める Issue #8745 に対し、Pyright 作者 Eric Traut(現
OpenAI) がコメント: "the language server protocol was not designed for coding agents." "We've experimented with the idea, and it hasn't provided the benefits that I initially thought it might." → ① エージェント向けに設計されてない ② 試したが期待ほどの効果は出ず © 2026 UPSIDER.inc
届かない側: Codex 私の見立て OpenAI の中の人の発言 + Codex が実装上 LSP を採らない事実
を合わせて読 むと、 今の Codex は「LSP には乗らない」という設計判断で動いている。 Text + Diagnostics + シェル操作 で押し切る方向にベットしている — というのが私の 解釈 © 2026 UPSIDER.inc
経路がある ≠ モデルが使う VS Code 公式リリースノート: agent は grep を好む
自前実験 (Claude Code, 5タスク × N=10 = 50 session): 指示なし → 0/50 で LSP を一度も呼ばず CLAUDE.md に「LSP優先」と書いても、タスク次第で grep を選ぶ → 「機能がある」と「モデルが実際に呼ぶ」の間に、運用指示の段差がある 実験条件: claude-opus-4-7 (1M context) / プロンプトキャッシュ有効 / コストは API 換算値 © 2026 UPSIDER.inc
使う ≠ いつでも効く HTTPException のような ユニーク識別子の参照タスク (N=10): 手段 時間 コスト
正解度 grep 直行 7.5s $0.05 1.00 LSP 優先 15.6s $0.12 0.99 → クラス名で十分に追える探索では、LSP の前準備コストが乗って逆効果 補足: LSPRAG (2025) / RLCSF (2025) も同様の指摘 © 2026 UPSIDER.inc
でも LSP が刺さる場面はある 共通名クラス Context の参照を全部出すタスク (N=10): 手段 時間 コスト
正解度 grep で頑張る 148s $0.78 0.985 LSP findReferences 72s $0.41 0.998 grep は JSX 用法など別物の Context が混入 → 手作業で除外を繰り返して到達 LSP は型でつながる参照だけを 一発で返す → 名前衝突しうるシンボルでは、LSP の 省力性 がはっきり出る © 2026 UPSIDER.inc
型をどう届かせるか Semantics だけに頼らず、Text と設定でも届き方を整える コード側: 公開APIの戻り値型を明示 / 型に名前を付ける / as
・any を減らす 設定: 「常にLSP優先」ではなく「タスクで使い分け」と書く。足りなければ Serena 等で外付け → 見るべきは対応の有無ではなく、型を AI にどう届かせるか © 2026 UPSIDER.inc
結論 TypeScriptの型はAIに届く ただし、大事なのは 届くか ではなく どう届くか です 単純な探索では、grep + Diagnostics
で十分なことがある call hierarchy / rename / 曖昧名の追跡 では、Semantics の価値が大きい 実務で見るべきなのは、LSP 対応の有無 ではなく タスクに応じた届け方を持てるか © 2026 UPSIDER.inc
TypeScript × AI に本気の会社です 金融インフラをフルスタック TypeScript で構築 ホワイエの UPSIDER ブースで
アップルサイダー 配ってます © 2026 UPSIDER.inc
We are hiring ! UPSIDERでは一緒に働く仲間を募集しています © 2026 UPSIDER.inc
観測条件 調査時点: 2026-05-16 ツール バージョン 主な確認手段 Claude Code v2.1.143 実機
+ changelog / Issue Codex CLI v0.130.0 実機 + Issue Cursor v3.3 changelog + docs / forum GitHub Copilot CLI v1.0.48 releases + docs / release notes Gemini CLI v0.42.0 releases + Issue / docs 正解度 = precision (誤検出の少なさ) と recall (取りこぼしの少なさ) の調和平均(F1) 。0〜1 で、1 が最高。 © 2026 UPSIDER.inc
主な一次資料 論点 出典 Codex の LSP 非採用 / Eric Traut
コメント openai/codex Issue #8745 Copilot agent が grep を好む VS Code v1.110 release notes Copilot CLI の LSP 操作 GitHub Docs: Using LSP servers with GitHub Copilot CLI Cursor agent tools Cursor Docs: Semantic & Agentic Search Cursor CLI は grep-like + embeddings Cursor Forum #156751 Gemini CLI の LSP 要望 Issue #2465, Issue #6690 静的型言語ほど LSP の効果が強い LSPRAG (2025) raw LSP は agent 向けに脆い RLCSF (2025) © 2026 UPSIDER.inc
実験の詳細はこちら gist.github.com/sh0o0/bdd9d0c 155 セッションの生データ・集計・CLAUDE.md 全文・再現コマンドを公開中。 © 2026 UPSIDER.inc