簡體   English   中英

如果使用[] .concat()組合多個數組,Angular @NgModule導入不會看模塊

[英]Angular @NgModule imports don`t see modules if use a [].concat() for combine several arrays

我有很多模塊,並希望按類型對幾個數組進行排序和拆分

const aModules: any[] = [
  Module1,
  Module2,
  Module3,
  Module4
];

const bModules: any[] = [
  Module5,
  Module6,
  Module7,
  Module8
]

如果使用擴展運算符,它將起作用

imports: [Module0, ...aModules, ...bModules]

但是如果使用concat方法它不起作用,如果使用下一個方法,任何組件將無法工作:

imports: [Module0].concat(aModules, bModules)

這兩種方法的typescript編譯器有什么區別? 因為我們看到了

console.log([Module0, ...aModules, ...bModules]);
console.log([Module0].concat(aModules, bModules));

兩種結果看起來都一樣

回答這個問題很難,因為Angular編譯器的這方面沒有太多文檔。 引擎蓋下 ,AOT編譯器重寫了裝飾器使用的大量元數據,我懷疑這是一個無法正確轉換的例子。

我可以告訴你,這與TypeScript或JavaScript無關。 這是AOT編譯器的問題。

您可以在此博客中閱讀有關變形金剛的內容:

https://blog.angularindepth.com/do-you-know-how-angular-transforms-your-code-7943b9d32829

您可以在此處找到變換器的源代碼:

https://github.com/angular/angular/tree/master/packages/compiler-cli/src/transformers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM