Iが申告を理解する:角2 - 宣言は何ですか?
- のいずれかであるコンポーネント、ディレクティブまたはパイプ
- モジュールの
declarations
アレイ - に添加することができるいずれかに属し、一方のみ、モジュール
しかし、実際にははと宣言できますか?サービスクラスのソートはモジュールに属しているので、なぜサービスクラスは宣言できませんか?あるいは、より一般的には、モジュール内に何かを宣言することは何を意味しますか?
Iが申告を理解する:角2 - 宣言は何ですか?
declarations
アレイしかし、実際にははと宣言できますか?サービスクラスのソートはモジュールに属しているので、なぜサービスクラスは宣言できませんか?あるいは、より一般的には、モジュール内に何かを宣言することは何を意味しますか?
declarations
は、セレクタとパイプ名をAngularにします。
コンポーネントテンプレートをコンパイルするとき、セレクタとパイプ名が一致する要素に適用されるために、現在のモジュールとインポートされたモジュールの宣言で一致するコンポーネント、ディレクティブ、パイプを検索します。
宣言子を使用すると、角度コンパイラは、コンポーネント、ディレクティブまたはパイプを実際に含むモジュールを宣言できます。
コンパイラは、ビューを作成するファクトリを生成するので、それらのコンポーネントを宣言されたモジュールと統合し、それらを使用している可能性のある他のモジュールでのみ参照します。
この理由から、各コンポーネント、パイプ、およびディレクティブは、最大で1つのモジュールのみで宣言する必要があります。
サービスは残りの部分と一緒に置かれ、必要に応じてwebpackなどの他のツールや場合によってはブラウザによって間接的に参照されます。角度コンパイラはサービスコードをコンパイルする必要はなく、通常のjavascriptコードとして使用します。
編集:角度コンパイラによってサービスをコンパイルする必要がないことを指定します。もちろん、もしそれがtypescriptなら、それはまだコンパイルされますが、typescriptコンパイラは角度のないコンパイラによってコンパイルされます。