Skip to content

setup

1. TypeScriptのインストール 🛠️

Section titled “1. TypeScriptのインストール 🛠️”

まず、プロジェクトのルートディレクトリでTypeScriptをグローバルまたはローカルにインストールします。プロジェクトごとにバージョンを管理するため、ローカルインストールが推奨されます。

Terminal window
npm install -g typescript # グローバルインストール
npm install --save-dev typescript # ローカルインストール(推奨)

次に、以下のコマンドでTypeScriptの設定ファイル tsconfig.json を生成します。

Terminal window
tsc --init

tsconfig.json には、コンパイルオプション(出力ディレクトリ、ESバージョンなど)を設定します。

2. バックエンド (BE) のセットアップ ⚙️

Section titled “2. バックエンド (BE) のセットアップ ⚙️”

バックエンドでは、主にNode.jsとExpress.js環境でのセットアップを想定して解説します。

まず、新しいディレクトリを作成し、package.json ファイルを生成します。

Terminal window
mkdir my-ts-backend
cd my-ts-backend
npm init -y

b. 必要なパッケージのインストール

Section titled “b. 必要なパッケージのインストール”

Express.js、型定義ファイル、そしてビルドツールをインストールします。

  • express: Webサーバーフレームワーク
  • @types/express, @types/node: ExpressとNode.jsの型定義ファイル
  • ts-node: TypeScriptを直接実行するためのランタイム
  • nodemon: 開発中のファイル変更を監視してサーバーを自動再起動
Terminal window
npm install express
npm install --save-dev @types/express @types/node ts-node nodemon

tsconfig.json を開いて、TypeScriptがコンパイルしたJavaScriptファイルを保存するディレクトリを設定します。

{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./dist", // コンパイルされたJSファイルの出力先
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"] // コンパイル対象のファイルを指定
}

package.json に開発用スクリプトを追加します。

"scripts": {
"start": "node dist/index.js",
"dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",
"build": "tsc"
}
  • dev: 開発中にファイルが変更されると、nodemonts-nodeを使って自動的にサーバーを再起動します。
  • build: TypeScriptファイルをJavaScriptにコンパイルし、distディレクトリに出力します。

3. フロントエンド (FE) のセットアップ 🖥️

Section titled “3. フロントエンド (FE) のセットアップ 🖥️”

フロントエンドでは、ReactとVue.jsでのセットアップを想定して解説します。

create-react-app を使用すると、TypeScript環境が最初からセットアップされたプロジェクトを簡単に作成できます。

Terminal window
npx create-react-app my-ts-react --template typescript

このコマンドを実行すると、必要な依存関係と tsconfig.json が自動的に生成されます。プロジェクトをそのまま開始できます。

Vue CLIを使って、TypeScriptをサポートするプロジェクトを作成できます。

Terminal window
vue create my-ts-vue

コマンド実行後、プロンプトが表示されるので、「Manually select features」を選択し、TypeScriptを有効にしてください。

バックエンドのTypeScript環境は、コンパイル設定と開発用スクリプトの追加が中心となります。一方、フロントエンドの主要なフレームワークでは、CLIツールがほとんどのセットアップを自動的に行ってくれるため、より簡単に開発を開始できます。

提示されたTypeScriptのセットアップ手順は非常に詳細で適切です。バックエンドとフロントエンドの両方を網羅しており、特にtsconfig.jsonの設定や開発用スクリプトの追加まで言及している点が優れています。

このドキュメントをさらに改善するため、以下の2つの点を追加することを提案します。

多くの開発者がVS Codeを使用しているため、TypeScript開発をより効率的に進めるための設定を追加します。

a. 必要な拡張機能のインストール

Section titled “a. 必要な拡張機能のインストール”
  • TSLint または ESLint: コーディングスタイルを統一し、潜在的なエラーを早期に発見します。
  • Prettier: コードフォーマッターとして、ファイルを保存するたびに自動でコードを整形します。

プロジェクトルートの.vscode/settings.jsonファイルに以下の設定を追加することで、TSLintPrettierを自動で適用できます。

{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}

6. その他のフレームワークとツール 🌐

Section titled “6. その他のフレームワークとツール 🌐”

ReactとVue.js以外の人気のあるフレームワークやツールにおけるTypeScriptのセットアップ方法を追加します。

Next.jsは、公式にTypeScriptをサポートしており、セットアップは非常に簡単です。

Terminal window
npx create-next-app@latest --typescript

このコマンドを実行するだけで、TypeScript環境が完全に構成されたNext.jsプロジェクトが生成されます。

Viteは、高速な開発サーバーとバンドルツールで、TypeScriptのサポートも組み込まれています。

Terminal window
npm create vite@latest my-ts-app -- --template react-ts
# または vue-ts

このコマンドで、ReactやVue.jsなど様々なフレームワークのテンプレートを、TypeScriptでセットアップできます。

これらの追加情報を盛り込むことで、ドキュメントはより包括的になり、多様な開発環境に対応できるようになります。

この包括的なドキュメントに加えて、以下のような点を追加するとさらに役立ちます。

7. 型定義ファイル (Type Definitions) の管理 📦

Section titled “7. 型定義ファイル (Type Definitions) の管理 📦”

TypeScriptはJavaScriptライブラリの型情報を利用して型安全性を確保します。@typesというスコープで管理されている型定義ファイルについて説明すると、ユーザーが既存のライブラリとTypeScriptを組み合わせる際に役立ちます。

型定義ファイルのインストール:

Section titled “型定義ファイルのインストール:”

lodashaxiosといったライブラリには、通常、対応する型定義ファイルが@types/として提供されています。これを--save-devでインストールします。

Terminal window
npm install axios
npm install --save-dev @types/axios

もし@typesに型定義ファイルが存在しない場合は、d.ts(Declaration File)を自分で作成する必要があります。これにより、TypeScriptコンパイラにそのライブラリの型情報を伝えることができます。

types/my-library/index.d.ts
declare module 'my-library' {
export function myfunction(): string;
}

tsconfig.jsonのより詳細なオプションを解説することで、ユーザーはプロジェクトの要件に合わせて設定を最適化できます。

長い相対パス(例: ../../components/Button)をエイリアス(例: @components/Button)に置き換える設定です。これにより、コードの可読性が向上します。

{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"]
}
}
}

tsconfig.json"strict": trueは、より厳格な型チェックを有効にします。これにはnoImplicitAnystrictNullChecksなどが含まれます。strictモードを有効にすることで、多くの潜在的なバグを防ぐことができます。

ReactやPreactなどのJSXを使用するフレームワークでのコンパイル方法を設定します。

{
"compilerOptions": {
"jsx": "react"
}
}

これらのセクションを追加することで、ドキュメントは単なるセットアップ手順を超え、実践的な開発で直面するであろう課題への解決策を提供する、より価値のあるリソースになります。