私は Angular (Angular2+ と呼ばれることもあります) を理解しようとしていたのですが、次のようなことに遭遇しました@Module
:
輸入
宣言
プロバイダー
ベストアンサー1
角度の概念
imports
他のモジュールのエクスポートされた宣言を現在のモジュールで使用できるようにしますdeclarations
現在のモジュールのディレクティブ (コンポーネントとパイプを含む) を、現在のモジュール内の他のディレクティブで使用できるようにします。ディレクティブ、コンポーネント、またはパイプのセレクターは、宣言またはインポートされている場合にのみ HTML と照合されます。providers
サービスと値を DI (依存性注入) に認識させるためです。これらはルート スコープに追加され、依存関係として持つ他のサービスまたはディレクティブに注入されます。
の特殊なケースは、providers
独自の子インジェクターを取得する遅延ロード モジュールです。providers
遅延ロード モジュールの は、デフォルトではこの遅延ロード モジュールにのみ提供されます (他のモジュールの場合のようにアプリケーション全体に提供されるわけではありません)。
モジュールの詳細については、以下も参照してください。モジュール
exports
は、このモジュールを追加するモジュールでコンポーネント、ディレクティブ、およびパイプを使用できるようにしますimports
。exports
また、共有モジュールでよく行われる CommonModule や FormsModule などのモジュールを再エクスポートするためにも使用できます。entryComponents
は、オフライン コンパイル用にコンポーネントを登録し、 で使用できるようにしますViewContainerRef.createComponent()
。ルータ構成で使用されるコンポーネントは暗黙的に追加されます。
TypeScript (ES2015) インポート
import ... from 'foo/bar'
(どれの解決されるかもしれないindex.ts
) は TypeScript のインポート用です。別の TypeScript ファイルで宣言されている識別子を TypeScript ファイル内で使用する場合は、必ずこれらが必要になります。
Angular@NgModule()
imports
と TypeScript はまったく異なる概念import
です。
参照jDriven - TypeScript と ES6 のインポート構文
それらのほとんどは、実際には TypeScript でも使用されている単純な ECMAScript 2015 (ES6) モジュール構文です。