Angular 2 では、グローバル javascript 変数が true (デバッグ ブール値) に設定されている場合にのみ、ngModule 内でディレクティブを宣言したいと考えています。
これは、tsc でコンパイルするときに機能していました。
declare let isDebug: boolean;
let dependencyArray : any[] = [];
if ('undefined' !== typeof isDebug && isDebug) {
dependencyArray.push(DebugDirective);
}
@NgModule({
declarations: [AppComponent].concat(dependencyArray),
imports: []
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
ただし、ngc コンパイラ (AOT コンパイル) はモジュール ファイルでの関数呼び出しを受け付けないようです。次のエラーは、ngc によってスローされます。
シンボル値を静的に解決中にエラーが発生しました。関数呼び出しはサポートされていません。関数またはラムダをエクスポートされた関数への参照に置き換えることを検討してください
プロバイダー用にエクスポートされた関数でファクトリを使用する方法を説明するさまざまなスレッドを見つけました (例: https://github.com/angular/angular/issues/11262 ) が、宣言配列に対して同じことを行う方法が見つかりませんでした.
モジュール宣言の問題を解決するにはどうすればよいですか?