# TypeScript 项目构成

# 1. 编译上下文

tsconfig.json

编译: tsc

# 2. 声明空间

两种声明空间:

  • 类型声明空间,包含用来当做类型注解的内容
  • 变量声明空间,包含可用作变量的内容

# 3. 模块

全局模块:

  • 不包含模块语法(import/export)的 TS 文件

文件模块:

  • AMD、CommonJS、ESM

import/require:

  • 导入 foo 模块的类型信息

    import foo = require('foo')
    
    let bar: foo
    

# 4. 命名空间

TS:

namespace Utility {
  export function log(msg) {
    console.log(msg);
  }
}

Utility.log('abc')

JS:

var Utility;

(function (Utility) {
  function log(msg) {
    console.log(msg);
  }
  Utility.log = log;
})(Utility || (Utility = {}));

Utility.log('abc');

# 5. 动态导入

import('./foo').then((module) => {
  // ...
});
本章目录