1.全局模块

  1. const foo = 123
  2. //在没有导出模块的情况下,foo变量为全局变量,在别的ts文件中可以直接访问该变量

2.文件模块

如果在TypeScript 文件的根级别位置含有 import 或者 export,它会在这个文件中创建一个本地的作用域。

注意,只有 functionclassinterface 可以直接默认导出,其他的变量需要先定义出来,再默认导出。

  1. export const foo = 123; //导出
  2. import { foo } from './foo'; //引入
  3. const bar = foo; // allow

3.Es模块语法

在 ES6 模块系统中,使用 export default 可以导出一个默认值,使用方可以用 import foo from 'foo' 而不是 import { foo } from 'foo' 来导入这个默认值。

1.导出

  1. 1.
  2. export const someVar = 123;
  3. export type someType = {
  4. foo: string;
  5. };
  6. 2.推荐使用一个export导出!!!
  7. const someVar = 123;
  8. type someType = {
  9. type: string;
  10. };
  11. export { someVar, someType };
  12. 3.重命名导出
  13. const someVar = 123;
  14. export { someVar as aDifferentName };
  15. 4.默认导出
  16. export default (someVar = 123);
  17. export default function someFunction() {}
  18. export default class someClass {}

2.导入

  1. 1.
  2. import { someVar, someType } from './foo';
  3. 2.重命名导入
  4. import { someVar as aDifferentName } from './foo';
  5. 3.推荐使用整体导入!!!
  6. import * as foo from './foo';
  7. // 你可以使用 `foo.someVar` 和 `foo.someType` 以及其他任何从 `foo` 导出的变量或者类型
  8. 4.导入模块
  9. import 'core-js'; // 一个普通的 polyfill 库
  10. 5.默认导入
  11. 在默认导出的模块 export default foo导入时,需要默认导入
  12. import foo from './'
  13. 相当于 import{default as foo} from './'