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
110
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
17
品質を保ちながら、 プロダクトの核に迫るための取り組み_Tanaka Yoshihiro
upsider_tech
0
21
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 Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
140
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
460
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Visualization
eitanlees
151
17k
The Invisible Side of Design
smashingmag
302
52k
AI: The stuff that nobody shows you
jnunemaker
PRO
7
640
4 Signs Your Business is Dying
shpigford
187
22k
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