export 负责导出

import 负责导入

一个文件包含importexport 就会被视为一个模块

在不同的ts文件(ts文件没有 import / export 的声明)下,声明了同名字的变量,会提示错误,因为两个文件处在全局空间(namespace?),如果此时文件使用了import / export,报错就会消失,因为文件被当作模块管理起来了,之前声明的同名字变量,将成为模块的内部变量。

导出

  1. export let a = 1
  2. export let b = {}
  1. let a = 1
  2. let b = {}
  3. export {a,b}

导出时重命名

  1. export {a as aa, b as bb}

重新导出,用来整合导出?在工具集的index.ts一般会这么写

  1. export * from 'a'

默认导出,一个文件只能有一个默认导出,导入的时候,也不用加{}了

  1. export default a

导入

  1. import {a} from 'a'

导入时重命名

  1. import {a as aa} from 'a'

将模块的所有部分导入到一个变量,通过它来访问其他导出部分

  1. import * as aObj from 'a'
  2. aObj.a

直接导入,这有什么用?

  1. import 'a'

commonjs amd

  1. // a.ts
  2. let a = 1
  3. export = a
  4. // b.ts
  5. import a = require('a')