【2026年版】TypeScriptの変更点まとめ:6.0と7.0で何が変わる?

プログラミング学習

2026年のTypeScriptでは、TypeScript 6.0TypeScript 7.0 が大きなポイントです。

特に大きいのは、TypeScript 7.0で内部の仕組みが大きく変わることです。これまでのTypeScriptはJavaScriptで作られていましたが、TypeScript 7.0ではGoという言語で作られた新しい仕組みに変わります。

この変更によって、型チェックやエディタの動作が速くなることが期待されています。

この記事では、2026年時点で知っておきたいTypeScriptの変更点を、できるだけわかりやすくまとめます。

まず全体像

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では、targetlibes2025 が追加されました。

target は、どのJavaScriptのバージョン向けに変換するかを決める設定です。

lib は、どのJavaScriptの機能を型として使えるようにするかを決める設定です。

たとえば、比較的新しいJavaScript環境を前提にするなら、次のように書けます。

{
  "compilerOptions": {
    "target": "es2025",
    "lib": ["es2025", "dom"]
  }
}

TypeScript 6.0では、ES2025や今後のJavaScript標準に関する型定義が追加・整理されています。

たとえば、次のような機能の型が扱いやすくなっています。

  • RegExp.escape
  • Promise.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へ移行するために、古い設定や使い方が整理されました。strictmoduletargettypesrootDir などの標準設定も変わっています。

また、TypeScript 6.0では es2025 の追加や、Temporal など新しいJavaScript APIの型追加も行われています。

TypeScript 7.0では、Goで作られた新しいコンパイラと言語サービスに変わります。これにより、型チェック、ビルド、エディタの動作が速くなることが期待されています。

既存プロジェクトでは、いきなりTypeScript 7.0へ上げるよりも、まずTypeScript 6.0で設定を確認し、非推奨になった項目を直してからTypeScript 7.0を試す流れが安全です。

特に古い tsconfig.json を使っているプロジェクトでは、target: "es5"baseUrlmoduleResolution: "node" などが残っていないか確認しておきましょう。

タイトルとURLをコピーしました