module.id をNgModuleの id として使用することは、一般的なアンチパターンであり、コードで有用な目的を果たしていない可能性が高いです。
NgModuleは id を宣言できます。
@NgModule({ id: 'my_module'})export class MyModule {}
id を宣言すると、NgModuleは getNgModuleById() 操作で検索できるようになります。この機能はほとんど使用されず、主に遅延読み込みされたNgModuleに対して直接参照を取得せずに、特定のバンドルシナリオで使用されます。ほとんどのAngularコードでは、代わりにES動的 import() (import('./path/to/module')) を使用する必要があります。これは、グローバル登録の副作用を必要とすることなく、読み込まれたNgModuleへの直接参照を提供します。
getNgModuleById を使用していない場合は、NgModuleの id を提供する必要はありません。id を提供すると、NgModuleがツリーシェイク不可能になり、バンドルサイズに影響を与える可能性があります。
特に、id: module.id を指定するパターンは、@NgModule.id の誤解から生じます。以前のバージョンのAngularでは、@Component メタデータに moduleId: module.id プロパティを含める必要がありました。
@NgModule.id に module.id を使用すると、@Component.moduleId と @NgModule.id を混同することになります。module.id は通常、getNgModuleById() 操作には役立ちません。id は既知の文字列である必要があり、module.id は通常、コンシューマーにとって不透明です。
エラーのデバッグ
NgModuleから id: module.id 宣言を削除できます。コンパイラは、この宣言を無視して、代わりにこの警告を出力します。