cam*_*kid 7 typescript angular
如果您只导出单个类或函数,请使用export default
正如"顶级附近的出口"减少了模块消费者的摩擦,引入默认导出也是如此.如果模块的主要用途是容纳一个特定的导出,那么您应该考虑将其导出为默认导出.这使导入和实际使用导入更容易一些.
例:
export default class SomeType {
constructor() { ... }
}
Run Code Online (Sandbox Code Playgroud)
在组件的Angular文档中(例如),可以看到:
export class HeroListComponent implements OnInit {
heroes: Hero[];
selectedHero: Hero;
constructor(private service: HeroService) { }
ngOnInit() {
this.heroes = this.service.getHeroes();
}
selectHero(hero: Hero) { this.selectedHero = hero; }
}
Run Code Online (Sandbox Code Playgroud)
通常,组件或模块的主要目的是容纳一个特定的导出.那么,Angular有没有使用或推荐使用的原因export default?
And*_*aru 16
实际原因是这不适用于AOT编译器,但它可以与JIT编译器一起使用.因此,如果您正在使用AOT(或想要继续使用它),请不要执行导出默认设置.另请参见这里:
默认导出
AoT不允许默认导出 - 必须全部命名.
❌DONT:
Run Code Online (Sandbox Code Playgroud)import { Component } from '@angular/core'; @Component({ template: ` <div class="example"> Example component! </div> ` }) export default class ExampleComponent { }✅做:
Run Code Online (Sandbox Code Playgroud)import { Component } from '@angular/core'; @Component({ template: ` <div class="example"> Example component! </div> ` }) export class ExampleComponent { }
| 归档时间: |
|
| 查看次数: |
2841 次 |
| 最近记录: |