Typescript documentation (section "Guidance for structuring modules")によると:「エクスポートのデフォルト」がAngularで推奨されないのはなぜですか?
あなただけの「トップレベルの近くにエクスポートすると、」あなたの 上の摩擦を低減同様に輸出 デフォルト
を使用し、単一のクラスや関数をエクスポートしている場合モジュールの消費者は、デフォルトのエクスポートを導入します。 モジュールの主な目的が1つの特定のエクスポートを格納することである場合、 はデフォルトのエクスポートとしてエクスポートすることを検討する必要があります。これにより、インポートと少し実際にインポートを使用して 両方を行います。
例:Angular documentation for componentsで
export default class SomeType {
constructor() { ... }
}
(例えば)一つは、これを見ている:
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; }
}
一般に、コンポーネントのまたはモジュールの主な目的は、一つの特定のエクスポートを収容することです。 Angularがexport default
を使用したり推奨したりする理由はありますか?
で/他の支店であれば - 一貫性のため、変更を最小限に抑えるための2番目のステートメントまたはエクスポートを追加する必要があるときにコードに追加します。そして整合性が実際にインポートを容易にします - 私は何かをインポートする必要があるたびに、モジュールがデフォルトのエクスポートを持っているかどうかを確認する必要はありません。 – artem
TypeScript言語の問題をこの質問と混同しないでください。私はどこかで、コンポーネントのデフォルトのエクスポートが、事前にコンパイラをAngularで壊しているのを読んだ。なぜこのようなことが起こるのか分かりませんが、時にはドキュメンテーションに従ってください。この問題を明確にするために、Angularチームの権限者の回答を使用することができます。そのため、私はそれを締め切らないように頼んだのです。それは完全に良い質問です。私はタブやスペースの問題としてそれを書いている人が好きではありません。 – cgTag