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/nodetypescript: 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.jspackage.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で本番実行
