我写React/Vue。像往常一样,我喜欢导出/导入默认组件。
// export
export default class SomeComponent from Component {
// blahblah
}
// import
import SomeComponent from './some.js'
但当我使用angular2+时,我发现了一件奇怪的事情。它使用破坏性的导入/导出形式。
// export
@Component({/* ... */})
export class SomeComponent {
// blahblah
}
// import
import {SomeComponent} from './some.component.ts'
为什么?我觉得这有点麻烦。它是由Typescript规则还是贡献者定义的?
发布于 2018-01-05 07:26:47
如果您在class
之前添加default
,那么您将能够以与React/Vue中相同的方式导入。
发布于 2018-01-05 08:05:57
typescript或javascript文件可以导出多个类(或函数、常量)。由于这种行为,您可以以这种方式导出类(或函数、常量):
export class MyClass{}
并以这种方式导入:
// import
import {MyClass} from './myClass.ts'
如果您确定只导出单个类(或函数、常量),则只需使用以下语法:
//export
export default class MyClass{}
//import
import MyClass from "./myclass.ts"
发布于 2018-01-05 07:40:51
这是标准行为。
它允许你从你的文件中导出几个东西。
例如
export class MyClass {}
export const MyClassMockedForTesting = {};
但是如果您想要改变这一点,您可以使用default
关键字,如下所示
export default class MyClass {}
它将导出您的类,您将不再需要括号。
https://stackoverflow.com/questions/48108913
复制