Mak*_*nko 5 typescript angular
我有很多模块,并且想按类型按几个数组对它进行排序和拆分
const aModules: any[] = [
Module1,
Module2,
Module3,
Module4
];
const bModules: any[] = [
Module5,
Module6,
Module7,
Module8
]
Run Code Online (Sandbox Code Playgroud)
如果使用扩展运算符,它将起作用
imports: [Module0, ...aModules, ...bModules]
Run Code Online (Sandbox Code Playgroud)
但是,如果使用concat方法则不起作用,如果使用下一种方法,则任何组件都将不起作用:
imports: [Module0].concat(aModules, bModules)
Run Code Online (Sandbox Code Playgroud)
这两种方法的打字稿编译器有什么区别?原因,如果我们看到
console.log([Module0, ...aModules, ...bModules]);
console.log([Module0].concat(aModules, bModules));
Run Code Online (Sandbox Code Playgroud)
两种结果看起来都一样
这个问题很难回答,因为 Angular 编译器这方面没有太多文档。在幕后,AOT编译器重写了装饰器使用的许多元数据,我怀疑这是一个它无法正确转换的示例。
我可以告诉你,这与 TypeScript 或 JavaScript 无关。这是AOT编译器的问题。
您可以在此博客中阅读有关 Transformer 的信息:
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
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |