2026年のTypeScriptでは、TypeScript 6.0 と TypeScript 7.0 が大きなポイントです。
特に大きいのは、TypeScript 7.0で内部の仕組みが大きく変わることです。これまでのTypeScriptはJavaScriptで作られていましたが、TypeScript 7.0ではGoという言語で作られた新しい仕組みに変わります。
この変更によって、型チェックやエディタの動作が速くなることが期待されています。
この記事では、2026年時点で知っておきたいTypeScriptの変更点を、できるだけわかりやすくまとめます。
- まず全体像
- TypeScript 6.0は、7.0へ移行するための準備版
- strict が標準で有効になる
- module の標準が esnext になる
- target と lib に es2025 が追加
- Temporal の型が追加
- types は必要なものを書く形に
- rootDir の標準が変わる
- CSSや画像のimportでエラーが出ることがある
- baseUrl は非推奨に
- tsc foo.ts の使い方が変わる
- TypeScript 7.0では中身が大きく変わる
- TypeScript 7.0 RCを試す方法
- TypeScript 7.0ではビルドが速くなる
- エディタの動きも速くなる可能性がある
- TypeScript 7.0で使えなくなる主な設定
- JavaScriptファイルをチェックしている場合も注意
- TypeScript APIを使うツールは注意
- TypeScript 6.0と7.0を併用する方法
- 移行前に確認したいこと
- まとめ
まず全体像
2026年のTypeScriptで押さえたい流れは、次の2つです。
TypeScript 6.0 は、TypeScript 7.0へ移行するための準備版です。
TypeScript 7.0 は、Goで作られた新しいTypeScriptに変わる大きな更新です。
つまり、いきなりTypeScript 7.0に上げるよりも、まずTypeScript 6.0で設定を確認してから、TypeScript 7.0へ進む流れが安全です。
TypeScript 6.0は、7.0へ移行するための準備版
TypeScript 6.0では、古い設定や使い方が整理されました。
これまで使えていた設定の一部は、TypeScript 6.0では非推奨になり、TypeScript 7.0では使えなくなります。
たとえば、次のような設定は見直しが必要です。
{
"compilerOptions": {
"target": "es5",
"baseUrl": "./src"
}
}
target: "es5" は、古いJavaScript向けに変換する設定です。TypeScript 6.0では非推奨になり、TypeScript 7.0ではサポートされません。
baseUrl もTypeScript 6.0で非推奨になりました。パスを短く書くためによく使われていましたが、今後は paths 側で相対パスを書く形に変えていく必要があります。
strict が標準で有効になる
TypeScript 6.0では、strict の標準設定が true になりました。
strict は、TypeScriptの型チェックを厳しくする設定です。
たとえば、次のようなコードがあります。
function greet(name) {
return "Hello, " + name;
}
strict が有効だと、name の型が書かれていないためエラーになることがあります。
次のように型を書く必要があります。
function greet(name: string) {
return "Hello, " + name;
}
これまで strict を使っていなかったプロジェクトでは、TypeScript 6.0に上げたときにエラーが増える可能性があります。
すぐに対応できない場合は、いったん次のように設定できます。
{
"compilerOptions": {
"strict": false
}
}
ただし、新しいプロジェクトでは strict: true を前提にしたほうが、あとから型の問題に気づきやすくなります。
module の標準が esnext になる
TypeScript 6.0では、module の標準設定が esnext になりました。
module は、JavaScriptのファイル同士をどう読み込むかを決める設定です。
今のJavaScriptでは、次のような書き方が一般的です。
import { formatDate } from "./date";
TypeScript 6.0では、このような新しいJavaScriptの書き方を前提にした設定になっています。
もしCommonJSを使っている場合は、次のように明示します。
{
"compilerOptions": {
"module": "commonjs"
}
}
Node.jsの古いプロジェクトでは、ここを確認しておくと安心です。
target と lib に es2025 が追加
TypeScript 6.0では、target と lib に es2025 が追加されました。
target は、どのJavaScriptのバージョン向けに変換するかを決める設定です。
lib は、どのJavaScriptの機能を型として使えるようにするかを決める設定です。
たとえば、比較的新しいJavaScript環境を前提にするなら、次のように書けます。
{
"compilerOptions": {
"target": "es2025",
"lib": ["es2025", "dom"]
}
}
TypeScript 6.0では、ES2025や今後のJavaScript標準に関する型定義が追加・整理されています。
たとえば、次のような機能の型が扱いやすくなっています。
RegExp.escapePromise.try- Iterator helpers
- Set methods
ただし、TypeScriptで型が使えることと、実際のブラウザやNode.jsで動くことは別です。
新しい機能を使う場合は、対象の実行環境で対応しているか確認が必要です。
Temporal の型が追加
TypeScript 6.0では、Temporal の型も追加されています。
Temporal は、日付や時刻を扱うための新しいJavaScript APIです。従来の Date よりも、日付や時刻を扱いやすくするための仕組みです。
使う場合は、たとえば次のように設定します。
{
"compilerOptions": {
"lib": ["esnext", "dom"]
}
}
コードでは、次のように書けます。
const today = Temporal.Now.plainDateISO();
console.log(today.toString());
ただし、Temporal は実行環境によってはそのまま動かない場合があります。TypeScript側に型があっても、実際に動かす環境が対応しているとは限りません。
types は必要なものを書く形に
TypeScript 6.0では、types の標準設定が空配列になりました。
これまでのTypeScriptでは、node_modules/@types にある型定義が自動で読み込まれることがありました。
TypeScript 6.0以降では、必要な型を明示する形になります。
たとえば、Node.jsとJestの型を使うなら、次のように書きます。
{
"compilerOptions": {
"types": ["node", "jest"]
}
}
この変更により、不要な型が勝手に読み込まれにくくなります。
その分、これまで自動で読み込まれていた型が使えなくなり、エラーになることがあります。
rootDir の標準が変わる
TypeScript 6.0では、rootDir の標準設定も変わりました。
rootDir は、TypeScriptのソースコードがどこにあるかを指定する設定です。
たとえば、ソースコードを src ディレクトリに入れている場合は、次のように書くとわかりやすいです。
{
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist"
},
"include": ["./src"]
}
rootDir を明示していないと、TypeScript 6.0に上げたときに、出力されるファイルの場所が変わる可能性があります。
CSSや画像のimportでエラーが出ることがある
TypeScript 6.0では、noUncheckedSideEffectImports が標準で有効になりました。
これは、次のようなimportに関係します。
import "./style.css";
CSSや画像ファイルをimportしている場合、TypeScriptがそのファイルの型を知らないとエラーになることがあります。
その場合は、次のような宣言ファイルを用意します。
declare module "*.css";
画像をimportする場合は、必要に応じて次のように書きます。
declare module "*.png";
declare module "*.jpg";
declare module "*.svg";
Vite、React、Vue、Next.jsなどでCSSや画像をimportしているプロジェクトでは、ここを確認しておきたい部分です。
baseUrl は非推奨に
TypeScript 6.0では、baseUrl が非推奨になりました。
これまで、パスを短く書くために次のような設定をしていた場合があります。
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@app/*": ["app/*"],
"@lib/*": ["lib/*"]
}
}
}
今後は、paths にプロジェクトルートからの相対パスを書く形にできます。
{
"compilerOptions": {
"paths": {
"@app/*": ["./src/app/*"],
"@lib/*": ["./src/lib/*"]
}
}
}
Laravel + Vite、React、Vue、Next.jsなどで @/components/Button のような書き方をしている場合は、設定を確認しておきたい部分です。
tsc foo.ts の使い方が変わる
TypeScript 6.0では、tsconfig.json がある場所で次のように実行するとエラーになります。
tsc foo.ts
これは、ファイル名を指定して実行すると tsconfig.json が使われないためです。
プロジェクト全体をビルドする場合は、次のように実行します。
tsc
単体ファイルだけを tsconfig.json なしでコンパイルしたい場合は、次のようにします。
tsc --ignoreConfig foo.ts
TypeScript 7.0では中身が大きく変わる
TypeScript 7.0の一番大きな変更は、TypeScriptの内部がGoで作られた新しい仕組みに変わることです。
これまでのTypeScriptは、TypeScript自身で書かれ、JavaScriptとして動いていました。
TypeScript 7.0では、新しいコンパイラと言語サービスに変わります。
この変更により、次のような処理が速くなることが期待されています。
- 型チェック
- ビルド
- エディタの補完
- 定義ジャンプ
- 参照検索
tsc --watch
大きなプロジェクトほど、効果を感じやすい可能性があります。
TypeScript 7.0 RCを試す方法
TypeScript 7.0 RCは、次のコマンドで試せます。
npm install -D typescript@rc
インストールしたら、次のようにバージョンを確認します。
npx tsc --version
RCは正式版の一歩手前のバージョンです。
動作確認には使えますが、本番環境で使う場合は、使っているライブラリやツールが対応しているか確認が必要です。
TypeScript 7.0ではビルドが速くなる
TypeScript 7.0では、処理を並列で実行できるようになります。
型チェックの並列数は、次のように指定できます。
tsc --checkers 4
モノレポなどでProject Referencesを使っている場合は、次のような指定もできます。
tsc --builders 4
ただし、数を増やせば必ずよいわけではありません。
並列数を増やすとメモリ使用量も増えます。CIやスペックの低い環境では、実際に試しながら調整する必要があります。
エディタの動きも速くなる可能性がある
TypeScript 7.0では、エディタ向けの仕組みも変わります。
そのため、VS Codeなどで次のような操作が速くなる可能性があります。
- 入力中の補完
- 型情報の表示
- 定義へ移動
- 参照を検索
- 自動import
TypeScriptを多く使っているプロジェクトでは、エディタの反応が改善される可能性があります。
TypeScript 7.0で使えなくなる主な設定
TypeScript 6.0で非推奨になった設定の一部は、TypeScript 7.0で使えなくなります。
特に確認したいのは以下です。
{
"compilerOptions": {
"target": "es5",
"moduleResolution": "node",
"baseUrl": "./src"
}
}
主な確認ポイントは次のとおりです。
target: "es5"を使っていないかbaseUrlに依存していないかmoduleResolution: "node"や"node10"を使っていないかmoduleResolution: "classic"を使っていないかmodule: "amd"、"umd"、"system"、"none"を使っていないかesModuleInterop: falseを使っていないかallowSyntheticDefaultImports: falseを使っていないかalwaysStrict: falseを使っていないか/// <reference no-default-lib />に関係する設定を使っていないかtsc foo.tsのような実行をしていないか
古い設定が残っているプロジェクトでは、TypeScript 7.0に上げたときにエラーになる可能性があります。
JavaScriptファイルをチェックしている場合も注意
TypeScriptは、.ts ファイルだけでなく、JavaScriptファイルもチェックできます。
次のような設定をしている場合です。
{
"compilerOptions": {
"allowJs": true,
"checkJs": true
}
}
TypeScript 7.0では、JavaScriptファイルやJSDocの扱いにも変更があります。
JSDocとは、JavaScriptのコメントで型の情報を書く方法です。
たとえば、次のような書き方です。
/**
* @param {string} name
*/
function greet(name) {
return "Hello, " + name;
}
.ts ファイルだけを書いている場合は影響が少ないですが、.js ファイルにJSDocコメントを書いて型チェックしているプロジェクトでは確認が必要です。
TypeScript 6.0まで通っていたJSDocの書き方が、TypeScript 7.0でエラーになる場合があります。
TypeScript APIを使うツールは注意
TypeScript 7.0では内部の仕組みが変わるため、TypeScript APIを直接使うツールは対応が必要になる場合があります。
たとえば、次のようなツールです。
- ESLint関連ツール
- コード生成ツール
- AST解析ツール
- TypeScript Language Service Plugin
- ts-morphなどのライブラリ
アプリ本体の型チェックだけなら試しやすいですが、開発ツールまで含めると、すぐにTypeScript 7.0へ移行できない場合があります。
TypeScript 6.0と7.0を併用する方法
TypeScript 7.0 RCでは、TypeScript 6.0と併用するためのパッケージも用意されています。
公式ブログでは、@typescript/typescript6 という互換パッケージが紹介されています。
次のようにインストールできます。
npm install -D typescript@npm:@typescript/typescript6
この設定では、TypeScript 6.0側は tsc6 として実行できます。
npx tsc6
ただし、このコマンドだけでTypeScript 6.0とTypeScript 7.0の両方を同時に使えるわけではありません。
TypeScript 7.0の tsc も同時に使いたい場合は、TypeScript 7.0を別名で追加する必要があります。
移行前に確認したいこと
TypeScript 6.0や7.0へ移行する前に、次の項目を確認するとよいです。
strictを有効にしても問題ないかtarget: "es5"を使っていないかbaseUrlを使っていないかtypesを明示しているかrootDirを明示しているか- CSSや画像のimportに型宣言があるか
tsc foo.tsのような実行をしていないか- JavaScriptファイルを
checkJsでチェックしているか - TypeScript APIを使うツールが対応しているか
まとめ
2026年のTypeScriptでは、TypeScript 6.0とTypeScript 7.0が大きなポイントです。
TypeScript 6.0では、TypeScript 7.0へ移行するために、古い設定や使い方が整理されました。strict、module、target、types、rootDir などの標準設定も変わっています。
また、TypeScript 6.0では es2025 の追加や、Temporal など新しいJavaScript APIの型追加も行われています。
TypeScript 7.0では、Goで作られた新しいコンパイラと言語サービスに変わります。これにより、型チェック、ビルド、エディタの動作が速くなることが期待されています。
既存プロジェクトでは、いきなりTypeScript 7.0へ上げるよりも、まずTypeScript 6.0で設定を確認し、非推奨になった項目を直してからTypeScript 7.0を試す流れが安全です。
特に古い tsconfig.json を使っているプロジェクトでは、target: "es5"、baseUrl、moduleResolution: "node" などが残っていないか確認しておきましょう。
