为什么这么多angular4项目使用导出类xxx而不是导出默认类xxx?

时间:2017-07-27 12:42:32

标签: angular

我知道input_dir=FLAGS.input_dir + "/test_examples-001*"export class xxx之间的区别。

但是我看到很多export default class xxx项目使用angular4这样:

export class xxx

我认为如果有一个类或任何要导出的类,使用@Component({ selector: 'call-record', templateUrl: './collection.component.html', styleUrls: ['./collection.component.css'] }) export class collection { } 应该更好吗?

所以我可以像这样导入它:export default xxx

不是这个:import xxx from './somewhere'

1 个答案:

答案 0 :(得分:0)

可维护性存在一些问题:

  • 如果您在xxx模块中重构somewhere,则不会在导入该模块的文件中对其重命名。

  • 如果最终需要从文件中导出更多有用的信息(不仅是具体的类,还包括导出的typesinterfacesconstants),则必须使用{{1 }}。

  • 默认导出的可发现性很差,并且您无法智能地区分模块是否具有默认导出

  • 编辑器/ IDE自动完成

  • 如果您使用export { ConcreteClass, SomeType, ISomeInterface, SomeConstant}这样的CommonJ,则很可能希望重命名默认导出。

  • 防止拼写错误。如果在开发过程中使用const {default} = require('./somewhere'),则不会出现任何拼写错误。其他人可能会这样写import Foo from './foo'

由于上述原因,应避免默认导出。