我知道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'
。
答案 0 :(得分:0)
可维护性存在一些问题:
如果您在xxx
模块中重构somewhere
,则不会在导入该模块的文件中对其重命名。
如果最终需要从文件中导出更多有用的信息(不仅是具体的类,还包括导出的types
,interfaces
,constants
),则必须使用{{1 }}。
默认导出的可发现性很差,并且您无法智能地区分模块是否具有默认导出
编辑器/ IDE自动完成
如果您使用export { ConcreteClass, SomeType, ISomeInterface, SomeConstant}
这样的CommonJ,则很可能希望重命名默认导出。
防止拼写错误。如果在开发过程中使用const {default} = require('./somewhere')
,则不会出现任何拼写错误。其他人可能会这样写import Foo from './foo'
。
由于上述原因,应避免默认导出。