Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TypeScriptの型はAIに届いている か?_shotaro
Search
UPSIDER, Inc. Tech&Product div.
May 21, 2026
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.
なぜレスポンスボディを読み切るのか - Go 1.27で進化した net/http のコネクション再利用メカニズム_Ryu
upsider_tech
1
95
エンジニアはどこまで越境するべきか_Take
upsider_tech
9
3.4k
『⽌めない』を設計する 制約の中で、事業の根幹を⽀える判断_terry
upsider_tech
0
33
English for Shy Engineers
upsider_tech
0
120
時価総額から逆算する、日々開発価値_ PL/BSで読み解くエンジニアリング貢献_Kinsho
upsider_tech
1
200
最近、評価が難しくなった ── 変わったのは評価項目ではなく、見方と見せ方_Mitsui
upsider_tech
0
37
TypeSpecで繋ぐ複数プロダクトの型安全 — スキーマ共有による「型契約」の実践_mitsui
upsider_tech
0
33
400超のデータポイントを型で制す — UPSIDERの与信審査エンジンを支えるTypeScriptの「柔軟性」と「結合力」_泉雄介
upsider_tech
0
760
フルスタックTypeScriptで挑む、UPSIDER法人審査システムの再構築_Mitomi
upsider_tech
0
410
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
The SEO identity crisis: Don't let AI make you average
varn
0
560
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
990
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
510
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
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