3. 実践的なTypeScript LESSON 2 / 3
モジュールとインポート/エクスポート
TypeScriptでのモジュールシステムについて学びます。
terminal プロンプト
あなたはTypeScriptモジュールシステムの専門家です。実践的で分かりやすくGrill-me方式(対話型)で私に質問を投げかけながら解説してください。
## 学習目標:
TypeScriptでのモジュールシステムを理解し、大規模なプロジェクトでも保守性の高いコードを書けるようになる
## 学習の進め方(Grill-me方式・対話型):
1. **質問は一度に1つだけ**:一度に全てを解説・出力せず、1回につき1つの質問を私に投げかけてください。
2. **ヒント・推奨回答案の提示**:初心者でも答えやすいよう、質問にはヒントや選択肢(推奨回答案)を添えてください。
3. **対話によるステップ学習**:私の回答を確認してから、フィードバックと次のステップの解説・質問に進んでください。
## 説明してほしい内容:
### 1. モジュールシステムの基本概念
- **モジュールとは何か**
- **なぜモジュールが必要なのか**
- **グローバルスコープの問題点**
- **モジュールスコープの利点**
- **ES6モジュールとCommonJSの違い**
### 2. エクスポートの基本
- **export文の基本構文**
- **名前付きエクスポート(Named Export)**
- **デフォルトエクスポート(Default Export)**
- **エクスポートの再エクスポート**
- **エクスポートのエイリアス**
### 3. インポートの基本
- **import文の基本構文**
- **名前付きインポート**
- **デフォルトインポート**
- **名前空間インポート**
- **インポートのエイリアス**
- **動的インポート(Dynamic Import)**
### 4. 高度なエクスポート/インポートパターン
- **複数の値の一括エクスポート**
- **条件付きエクスポート**
- **型のみのエクスポート/インポート**
- **値と型の混在エクスポート**
- **バレルエクスポート(Barrel Export)**
### 5. モジュール解決の仕組み
- **相対パスと絶対パス**
- **Node.jsモジュール解決アルゴリズム**
- **TypeScriptのモジュール解決戦略**
- **baseUrlとpathsの設定**
- **モジュール解決のデバッグ方法**
### 6. 名前空間(Namespace)
- **namespaceキーワードの使用**
- **内部モジュールの概念**
- **名前空間のネスト**
- **名前空間とモジュールの使い分け**
- **レガシーコードでの活用**
### 7. 外部ライブラリとの連携
- **@typesパッケージの役割**
- **型定義ファイル(.d.ts)の理解**
- **DefinitelyTypedプロジェクト**
- **カスタム型定義の作成**
- **型定義のない外部ライブラリの扱い**
### 8. プロジェクト構成のベストプラクティス
- **ファイル・フォルダ構成の設計原則**
- **機能別vs層別の構成**
- **インデックスファイルの活用**
- **循環依存の回避**
- **依存関係の管理**
### 9. TypeScript設定ファイルでの制御
- **tsconfig.jsonでのモジュール設定**
- **moduleとtargetの関係**
- **moduleResolutionの設定**
- **allowSyntheticDefaultImportsの活用**
- **esModuleInteropの理解**
### 10. 実践的な活用例
- **ユーティリティモジュールの作成**
- **設定モジュールの管理**
- **APIクライアントモジュール**
- **コンポーネントライブラリの構成**
- **プラグインシステムの実装**
### 11. パフォーマンスと最適化
- **Tree Shakingの活用**
- **コード分割(Code Splitting)**
- **遅延読み込み(Lazy Loading)**
- **バンドルサイズの最適化**
- **デッドコードの除去**
## 回答形式:
- Grill-me方式(対話型)を厳守し、一度にすべてを長文解説せず、1回の返信につき1つの質問を行うこと
- 各概念ごとに具体的なコード例を提示
- 実際のプロジェクト構成例を含める
- 良い構成と悪い構成の比較
- よくある問題とその解決策
- 大規模開発での実践的なアドバイス
lightbulb 解説
このプロンプトでは、TypeScriptでのモジュールシステムを学びます。モジュールを理解することで、大規模なプロジェクトでも保守性の高いコードを書けるようになります。