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
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kouki.miura
August 31, 2026
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
TypeScript7をVueプロジェクトで使いたいけどどうすれば良いか?一部だけでも使えないか?というLT発表の資料です。
kouki.miura
August 31, 2026
More Decks by kouki.miura
See All by kouki.miura
診療情報提供書 × HL7 FHIR ~医療情報の標準化を実際に実装してみる~
koukimiura
0
62
VueSapporo#4
koukimiura
0
40
Vue3_Capacitorでモバイルアプリ開発
koukimiura
0
43
Vueが軽く&速くなる!Vapor Modeを試してみた
koukimiura
0
61
Vue3.6.0-rc_CHANGELOG読み合わせ
koukimiura
0
53
医療DXって何?~電子カルテ標準仕様まで10分で理解する~
koukimiura
1
110
アプリ開発者が知っておくべき『トランザクション分離レベル』とRead Committed の罠
koukimiura
0
120
フルスタックTypeScript入門 ~Hono RPCとZodで実現する型共有~
koukimiura
0
82
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
180
Other Decks in Programming
See All in Programming
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.2k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
Java 27新機能 / Java 27 new features
kishida
2
190
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
210
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.6k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
130
アクセシビリティから考える情報設計
high_g_engineer
0
430
AHC070解法紹介
eijirou
0
150
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
120
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
380
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Rails Girls Zürich Keynote
gr2m
96
14k
Why Our Code Smells
bkeepers
PRO
340
58k
How Software Deployment tools have changed in the past 20 years
geshan
2
34k
Automating Front-end Workflow
addyosmani
1369
210k
Thoughts on Productivity
jonyablonski
76
5.4k
First, design no harm
axbom
PRO
2
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Making the Leap to Tech Lead
cromwellryan
135
10k
Transcript
2026.08.31 / 【非公式】Vue Fes Japan 2026 機運醸成勉強会 by hokkaido.js VueプロジェクトをTypeScript7に対応させる
- Side-by-Side戦略による一部高速化 - 三浦 恒樹 (MIURA KOUKI) / 医療ITエンジニア
自己紹介 - ドゥウェル株式会社 に所属(マネージャー) 医療ITエンジニア / 診療情報管理士 / 上級医療情報技師 /
医用画像情報専門技師 TypeScript / Vue.js / Node.js / Java / C# / PHP - 3兄弟の父、休日は習い事の送り迎えとか... - 参加している勉強会 札幌PHP勉強会 ゆるWeb勉強会 JBUG札幌 JavaDO えびてく クラメソ札幌IT勉強会(仮) AWS初心者LT会in札幌 札幌すごいAI会 札幌IT石狩鍋 hokkaido.js 函館本線沿線勉強会 JPUG-Ezo VueSapporo さっぽろ医療IT勉強会 ※運営 - コーディングBGM ラックライフ BLUE ENCOUNT SHANK Dizzy Sun Fist - Naru, 名前を呼ぶよ, 初めの一歩, 変わらない空 - Survivor, ポラリス
話すこと 01 02 03 TypeScript 7とは何か Vueで何が起きたか Side-by-Sideで共存させる Goで書き直されたNative Compiler
vue-tscが動かなくなる理由 変えられるところから変える
今日話したいこと TypeScript 7、速いらしい。 Vueプロジェクトも TypeScript 7に上げればいいのでは? なぜ? 実際にやってみると…… ERR_PACKAGE_PATH_NOT_EXPORTED そして、どうする?
TypeScript 7とは? 「TypeScriptの高速化」ではなく「TypeScriptの実装基盤の変更」 TypeScript 6.0 まで TypeScript 7 TypeScript compiler
Compiler Language Service Language Service JavaScript implementation Native implementation JavaScript Go TypeScript 7 は Go で実装された Native TypeScript compiler / language service
どれくらい速い? TypeScript公式ブログでの説明 高速化される処理 10x faster native port of TypeScript 出典:TypeScript
7.0 公式ブログ • 実際には処理によって差がある(すべてが10倍になるわけではない) • 大規模プロジェクトほど恩恵を受けやすい Parsing Type checking Emit Language Server
ただし、Vueには問題がある TypeScript 7 は、まだ安定した Programmatic API を提供していない 普通のTypeScriptプロジェクト Vueプロジェクト .vue
tsc Vue Language Tools Virtual TypeScript TypeScript 7 TypeScript これで済む Vue toolingがTypeScript compilerを 「プログラムから利用」している
実際にTypeScript 7へ上げてみる { "devDependencies": { "typescript": "^7.0.2", "vue-tsc": "^3.3.11" }
} $ pnpm type-check すると…… やったこと • typescript を 7系に更新 • vue-tsc は最新(3.3.11) • 型チェックを実行
ERROR Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: ポイント Package subpath './lib/tsc' is not defined
by "exports" in .../typescript/package.json 型チェックで エラーになった のではない スタックトレースには… そもそも起動していない resolveExports › resolveTscPath › vue-tsc/index.js
何が起きているのか? vue-tsc は単純に tsc を実行しているわけではない vue-tsc がやっていること 1 .vue を解析する
2 Virtual TS code を生成する 3 TypeScript compiler を利用する TypeScript API TypeScript 7 では typescript/lib/tsc のような内部実装への依存が、そのま ま成立しない vue-tsc TypeScript 7 ERR_PACKAGE_PATH_NOT_EXPORTED
ここでTypeScript公式の戦略を見る TypeScript 7 に用意された移行戦略 Side-by-Side TypeScript 7 + TypeScript 6
2つのTypeScriptを、同時にインストールして使い分ける
なぜ2つ必要なのか? 役割分担で考える TypeScript 7 TypeScript 6 tsc tsc 高速な Native
Compiler 既存の Programmatic API コンパイル・型チェックを速く ツールがAPI経由で使う Compilerとしては 7 を使いたい。 でも、まだ 6 のAPIに依存するツールがある。 この状態を、公式にサポートする
npm alias による Dual Install TypeScript公式の例 { "devDependencies": { "@typescript/native":
"npm:typescript@^7.0.2", "typescript": "npm:@typescript/typescript6@^6.0.2" } こう解決される @typescript/native } TypeScript 7 → tsc typescript npm alias を使って、パッケージ名と中身をずらす。 TypeScript 6 → tsc6 「typescript」という名前で 6 を、別名で 7 をインストールする。 2つのTypeScriptを別名で共存させる
Vueの場合はどうする? ここが今回の本題 Vue Language Tools 側も、この問題に対応している TypeScript 7 + @typescript/typescript6
を前提とした Dual-Install 対応が進められている PR #6123 vuejs/language-tools github.com/vuejs/language-tools/pull/6123
Vue Language Tools の Dual-Install Vue Project vue-tsc tsc TypeScript
6 API TypeScript 7 Vue Language Tools Native Compiler 型チェックはこちら ここが速くなる 「全部 TypeScript 7 にする」のではなく、「TypeScript 7 を使えるところから使う」
Side-by-Sideの本質 単なる「一時的な回避策」ではない TypeScript 7 は 大きなアーキテクチャ変更 TypeScript 7 Compiler 直接利用できるツール
7 Language Service 6 API に依存するツール 6 Programmatic API → 段階的な移行が可能になる アーキテクチャが変わったからこそ、共存が「公式の移行パス」になっている
では、何が高速化される? Vueプロジェクト全体が 「全部 10x faster!」になるわけではない TypeScript 7 を利用できる経路から、 段階的に高速化する。 Vue
project vue-tsc Vue Language Tools → TS 6 API そのまま tsc TypeScript 7 → Native Compiler 高速化 other tooling TS 6 / TS 7 ツール次第 ※ vue-tsc 経由の型チェックは TypeScript 6 のままなので、そこは速くならない
今回のエラーから学べること 「vue-tscが古い」で終わらせない TypeScript 7 Vue は SFC を扱う Vue SFC
API境界が変わった Vue Language Tools Toolingが内部APIに依存していた Virtual TypeScript TypeScript Vue Language Toolsとの互換性問題 「TypeScriptそのもの」だけでは完結しない Tooling Architecture になっている コンパイラと Tooling の依存関係を見るきっかけになる
まとめ TypeScript 7 しかし そこで • GoベースのNative Compiler • •
Side-by-Side(6と7の共存) • 大幅なパフォーマンス改善 安定したProgrammatic APIがま だない • npm aliasによるDual Install • Vue Language Toolsは compiler APIを使う • Vue Language Toolsも対応中 • 単純な「7への置き換え」では動かな い • Compiler / Language Service の刷新 TypeScript 7 と TypeScript 6 を共存させる TypeScript 7 + TypeScript 6
References 1 TypeScript 7.0 devblogs.microsoft.com/typescript/announcing-typescript-7-0/ 2 Running Side-by-Side with TypeScript
6.0 devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0 3 Vue Language Tools #6123 github.com/vuejs/language-tools/pull/6123 4 Vue Language Tools CHANGELOG github.com/vuejs/language-tools/blob/master/CHANGELOG.md
ご清聴ありがとうございました。