Node.js を TypeScript で構築する手順まとめ

Node.js は本来 JavaScript で動作するランタイムですが、最近では保守性や開発効率の観点から TypeScript で開発するケースが増えています。
特にバックエンドや API サーバーを構築する際には、型安全性やエディタ補完の強力さが大きなメリットになります。

この記事では、Node.js + TypeScript 開発環境をゼロから構築する手順 をまとめます。
「npm init したけど次に何をすればいいの?」という方でも、最後まで読めば TypeScript で Node.js プログラムを実行できる状態 になります。

環境

  • OS: Windows 11
  • Node.js: v22.19.0
  • npm: v10.9.3
  • TypeScript: Version 5.9.2
  • ts-node: v10.9.2

確認方法

# Node.jsのバージョン
node -v
22.19.0

# npmのバージョン
npm -v
10.9.3

# TypeScriptのバージョン
npx tsc -v
Version 5.9.2

# ts-nodeのバージョン
npx ts-node -v
v10.9.2

プロジェクトの作成

mkdir my-app
cd my-app
npm init -y

これで package.json が生成されます。

TypeScript と型定義の導入

TypeScript 本体と Node.js の型定義をインストールします。

npm install --save-dev typescript ts-node @types/node
  • typescript : TypeScript コンパイラ
  • ts-node : TypeScript を直接実行できるツール
  • @types/node : Node.js 標準ライブラリの型定義

tsconfig.json の作成

TypeScript の設定ファイルを作ります。

npx tsc --init

生成された tsconfig.json を以下のように調整します。

{
  "compilerOptions": {
    "target": "ES2020",              // 出力するJSのバージョン
    "module": "nodenext",            // Node.js向けモジュール解決
    "moduleResolution": "NodeNext",
    "outDir": "./dist",              // 出力先
    "rootDir": "./src",              // ソースディレクトリ
    "strict": true,                  // 厳格な型チェック
    "esModuleInterop": true,         // import/export の互換性
    "skipLibCheck": true,            // 型チェックを一部スキップして高速化
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src"],                // コンパイル対象
  "exclude": ["node_modules"]        // 除外対象
}

ディレクトリ構成

以下のような構成にすると整理しやすいです。

my-app/
  ├─ dist/
  ├─ node_modules/
  ├─ src/
  │   └─ index.ts
  ├─ package-lock.json
  ├─ package.json
  └─ tsconfig.json

サンプルコードを書く

src/index.ts を作成して、簡単なコードを書きます。

import fs from "fs";

console.log("Hello TypeScript + Node.js!");
const files = fs.readdirSync(".");
console.log("Current directory files:", files);

実行方法

直接実行(開発用)

ts-node を使うとコンパイルせずに実行できます。

npx ts-node src/index.ts

コンパイルして実行(本番用)

npx tsc   # TypeScript をコンパイル
node dist/index.js

package.json にスクリプトを追加

毎回長いコマンドを打たなくてもいいように、package.json にスクリプトを追加しておきましょう。

{
  "scripts": {
    "dev": "ts-node src/index.ts",
    "build": "tsc",
    "start": "node dist/index.js"
  }
}

これで次のように簡単に実行できます。

npm run dev    # 開発モード
npm run build  # コンパイル
npm start      # 本番実行

まとめ

  • npm init -y でプロジェクト作成
  • typescript ts-node @types/node をインストール
  • tsconfig.json を設定
  • src/index.ts を作成
  • npm run dev で開発、npm run build && npm start で本番実行