メインコンテンツまでスキップ

TypeScriptとは・環境構築

この章では、TypeScriptの基本概念と開発環境の構築方法を学びます。

この本を読む前に

警告

前提知識

この本はJavaScriptの基礎知識を前提としています。以下の内容を理解していることを確認してください。

  • 変数と定数: letconstの使い方
  • データ型: 文字列、数値、真偽値、配列、オブジェクト
  • 関数: 関数宣言、アロー関数、引数と戻り値
  • 制御構文: if/elseforwhileswitch
  • 配列メソッド: mapfilterfindforEach
  • オブジェクト操作: プロパティアクセス、スプレッド構文
  • 非同期処理: Promiseasync/await(後半の章で使用)

また、コマンドライン(ターミナル)の基本操作ができることも必要です。

この章で学ぶこと

  • TypeScriptとは何か、なぜ使うのかを理解する
  • TypeScriptの主要な特徴とメリットを把握する
  • 開発環境を構築する
  • VSCodeの推奨設定
備考

この章の内容は、実際に手を動かしながら学習することを推奨します。環境構築が完了したら、次章で最初のTypeScriptプログラムを作成します。

TypeScriptとは

TypeScriptは、Microsoft社が開発・保守しているプログラミング言語です。JavaScriptに静的型付けを追加したスーパーセット(上位互換)として設計されています。

TypeScriptの特徴

  1. 静的型付け: コンパイル時に型エラーを検出できる
  2. JavaScriptとの互換性: 既存のJavaScriptコードをそのまま使える
  3. 最新のECMAScript機能: ES2015以降の機能を先取りして使える
  4. 開発ツールのサポート: IDEの補完機能が充実
  5. 大規模開発に適している: コードの保守性・可読性が向上

なぜTypeScriptを使うのか?

JavaScriptの課題:

// JavaScriptの例:型エラーが実行時にしか分からない
function add(a, b) {
return a + b;
}

console.log(add(5, 10)); // 15 - 正常に動作
console.log(add('5', '10')); // '510' - 意図しない結果(文字列結合になる)
console.log(add(5, '10')); // '510' - 型の不一致に気づきにくい

TypeScriptでの解決:

// TypeScriptの例:型を明示することでコンパイル時にエラーを検出
function add(a: number, b: number): number {
return a + b;
}

console.log(add(5, 10)); // 15 - 正常に動作
console.log(add('5', '10')); // エラー: 型 'string' の引数を型 'number' のパラメータに割り当てられません
console.log(add(5, '10')); // エラー: 型の不一致をコンパイル時に検出

コード解説:

  • a: number - 引数aはnumber型であることを宣言
  • b: number - 引数bもnumber型であることを宣言
  • : number - 関数の戻り値もnumber型であることを宣言
  • TypeScriptコンパイラが、型が一致しない呼び出しをエラーとして検出

TypeScriptのメリット

メリット説明具体例
バグの早期発見コンパイル時に型エラーを検出引数の型ミスをコーディング時に発見
IDEの補完型情報により正確な補完が可能メソッド名の入力ミスを防ぐ
コードの自己文書化型注釈がドキュメントの役割を果たす関数の引数・戻り値の型が一目で分かる
リファクタリングが容易型情報により安全に変更できる変数名の一括変更時の影響範囲を把握
チーム開発の効率化コードの意図が明確になる他の開発者が書いたコードを理解しやすい

開発環境のセットアップ

TypeScriptを学習・開発するための環境を構築しましょう。

オプション1: オンライン環境(最も手軽)

TypeScript Playgroundを使用すると、インストール不要ですぐに試せます。

  • URL: https://www.typescriptlang.org/play
  • メリット: インストール不要、ブラウザだけで動作
  • 用途: 簡単なコードの試行、学習、コードの共有

使い方:

  1. 上記URLにアクセス
  2. 左側のエディタにTypeScriptコードを入力
  3. 右側に自動でコンパイル後のJavaScriptコードが表示される
  4. 下部のLogsタブで実行結果を確認

オプション2: ローカル環境(本格的な開発向け)

必要なツール:

  1. Node.js(JavaScriptランタイム)
  2. TypeScriptコンパイラ

ステップ1: Node.jsのインストール

# Node.jsがインストールされているか確認
node --version
# v22.12.0 以上が表示されればOK(推奨は v24 LTS)

# npmのバージョンも確認
npm --version
# 10.0.0 以上が表示されればOK
備考

本書は Node.js 22 LTS 以降を前提としています。Node.js 22.18 以降(および v24)では type stripping がデフォルトで有効化され、node app.ts のようにフラグなしで .ts ファイルを直接実行できます(学習時のビルド手順を省略できます)。enum や namespace のように型を超えた変換が必要な構文では --experimental-transform-types を付けます(18章で詳しく扱います)。Node.js 20 以前はすでにサポート期間が終了しているため、新規学習には推奨しません。

Node.jsがインストールされていない場合:

  • 公式サイトからLTS版をダウンロード
  • インストーラーの指示に従ってインストール
  • ターミナルを再起動して上記のコマンドで確認

ステップ2: TypeScriptのインストール

# グローバルにTypeScriptコンパイラをインストール
# -gオプション: システム全体でtscコマンドを使えるようにする
npm install -g typescript

# インストールされたTypeScriptのバージョンを確認
tsc --version
# Version 6.0 以上が表示されればOK(本書は TypeScript 6.0 前提、執筆時点 6.0.3)

コマンド解説:

  • npm: Node.jsのパッケージマネージャー(ライブラリ管理ツール)
  • install: パッケージをインストールするコマンド
  • -g: グローバルインストール(システム全体で使えるようにする)
  • typescript: インストールするパッケージ名

ステップ3: プロジェクトフォルダの作成

# プロジェクト用のディレクトリを作成
mkdir typescript-learning
# 作成したディレクトリに移動
cd typescript-learning

# package.jsonを作成(プロジェクトの設定ファイル)
# -yオプション: すべての質問にデフォルト値で答える
npm init -y

生成されるpackage.json:

{
"name": "typescript-learning",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

VSCodeの推奨設定

TypeScript開発にはVSCode(Visual Studio Code)を推奨します。

推奨拡張機能

拡張機能説明重要度
TypeScript Importerimport文を自動追加★★★
Error Lensエラーをエディタ上にインライン表示★★★
Prettierコードの自動整形★★★
ESLintコード品質チェック★★☆
Auto Rename TagHTMLタグの自動リネーム★★☆
Path Intellisenseファイルパスの補完★☆☆

VSCodeの設定(settings.json)

{
// 保存時に自動整形
"editor.formatOnSave": true,
// デフォルトのフォーマッターをPrettierに
"editor.defaultFormatter": "esbenp.prettier-vscode",
// TypeScriptファイルでimportを自動追加
"typescript.suggest.autoImports": true,
// 相対パスでimport
"typescript.preferences.importModuleSpecifier": "relative",
// 未使用のimportを自動削除
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}

TypeScript用の設定が有効か確認

  1. VSCodeでTypeScriptファイル(.ts)を開く
  2. エディタ右下に「TypeScript」とバージョンが表示されていればOK
  3. 変数にカーソルを合わせると型情報がホバー表示される

試してみよう: 環境構築を完了しよう ★

Node.jsとTypeScriptをインストールし、プロジェクトフォルダを作成してください。

ヒント
  1. まず node --version でNode.jsがインストールされているか確認
  2. インストールされていなければ https://nodejs.org/ からダウンロード
  3. npm install -g typescript でTypeScriptをインストール
  4. tsc --version でインストールを確認
  5. mkdir typescript-learning && cd typescript-learning && npm init -y でプロジェクトを初期化
回答と解説
# 1. Node.jsの確認
node --version
# → v22.x.x 以上(LTS)が表示されればOK

# 2. TypeScriptのインストール
npm install -g typescript

# 3. インストール確認
tsc --version
# → Version 6.0 以上(執筆時点 6.0.3)が表示されればOK

# 4. プロジェクトフォルダの作成
mkdir typescript-learning
cd typescript-learning
npm init -y

# 5. 確認
ls
# → package.json が存在すれば成功

これで環境構築は完了です。次章では、この環境を使って最初のTypeScriptプログラムを作成し、コンパイル・実行してみます。

よくある質問

Q1: JavaScriptファイルをTypeScriptとして使えますか?

A: はい、可能です。TypeScriptはJavaScriptのスーパーセットなので、.jsファイルを.tsに変更するだけで動作します。

// 既存のJavaScriptコード(valid.ts)
function sum(a, b) {
return a + b;
}

console.log(sum(1, 2)); // 3

このコードはTypeScriptとして有効です。ただし、型注釈がないため、TypeScriptのメリットを十分に活かせません。

Q2: TypeScriptを学ぶ前にJavaScriptの知識は必要ですか?

A: はい、JavaScriptの基礎知識が必要です。

最低限必要な知識:

  • 変数(let、const)
  • データ型(number、string、boolean、array、object)
  • 関数
  • 条件分岐(if、switch)
  • ループ(for、while)
  • オブジェクトと配列の操作

TypeScriptは「JavaScriptに型を追加したもの」なので、JavaScriptの知識がベースになります。

初学者がつまずきやすいポイント

警告

よくある間違い

❌ tscコマンドが見つからない

tsc --version
# → command not found: tsc

原因: TypeScriptがグローバルインストールされていない、またはPATHが通っていない。

解決策:

# 再インストール
npm install -g typescript

# それでも動かない場合はnpxを使用
npx tsc --version

❌ Node.jsのバージョンが古い

node --version
# → v14.x.x

原因: 古いNode.jsではTypeScriptの一部機能が動作しない。

解決策: Node.js公式サイトからLTS版(v22.12以上、推奨はv24 LTS)をインストールする。

❌ VSCodeでTypeScriptの補完が効かない

原因:

  1. TypeScriptがインストールされていない
  2. ファイル拡張子が.tsではない
  3. tsconfig.jsonがない

解決策:

  1. npm install -g typescript を実行
  2. ファイル拡張子を.tsに変更
  3. tsc --init で設定ファイルを生成

❌ 「Cannot find module」エラー

Cannot find module 'typescript'

原因: プロジェクトディレクトリでTypeScriptがインストールされていない。

解決策:

# プロジェクトにローカルインストール
npm install --save-dev typescript

まとめ

この章で学んだこと:

  • TypeScriptとは何か: JavaScriptに静的型付けを追加した言語
  • TypeScriptのメリット: バグの早期発見、IDEの補完機能、コードの自己文書化
  • 開発環境の構築: Node.jsとTypeScriptコンパイラのインストール

次の章では、実際にTypeScriptコードを書いて、コンパイル・実行してみます。


次に読む