為了讓 Angular 編譯器中的中繼資料抽取更快,裝飾器 @NgModule、@Pipe、@Component、@Directive 與 @Injectable 只接受物件字面值作為引數。
這是 Ivy 的刻意變更,它對裝飾器引數的要求比 View Engine 更嚴格。 Ivy 需要這種做法,因為它編譯裝飾器的方式,是把表達式移到類別輸出中的其他位置。
除錯方式
把所有宣告:
const moduleDefinition = {…}
@NgModule(moduleDefinition)
export class AppModule {
constructor() {}
}
移入裝飾器中:
@NgModule({…})
export class AppModule {
constructor() {}
}