# 模块化
> 相关配置:
| 配置名称 | 含义 |
|:———-:| :—————:|
| module | 设置编译结果中使用的模块化标准 |
| moduleResolution | 设置解析模块的模式 |
| noImplicitUseStrict | 编译结果中不包含 “use strict” |
| removeComments | 编译结果移除注释 |
| noEmitOnError | 错误时不生产编译结果 |
| esModuleInterop | 启用es模块化交互非es模块导出 |
> 前端领域中的模块化标准: ES6 、 commonjs、 amd、 umd、 system、 esnext
> TS中如何书写模块化语句
> 编译结果使用的是什么模块化标准
```tsconfig.json
{
"compilerOptions": { //编译选项
"target": "es2016", //配置编译目标代码的版本标准
"module": "commonjs", //配置编译目标使用的模块化标准 //es6 、commonjs
"lib": ["ES2016"], //配置运行环境,默认dom,现改为node环境,需要安装@types/node 插件
"outDir": "./dist", //编译结果保存目录
"strictNullChecks": true, //更加严格的空类型检查,null/undefined不能赋值给其他类型
"removeComments": true, // 编译结果移除注释
"noImplicitUseStrict": true, //编译结果 移除 use strict 字符串,关闭严格模式
"esModuleInterop": true, //启用es模块化交互非es模块导出
"noEmitOnError": true, //错误时不生产编译结果
},
"include": ["./src"], //编译文件夹路径
// "files": ["./src/index.ts"], //指定编译指定文件,以及依赖文件
}
```
# TS中如何书写模块化语句
TS中,导入和导出模块,统一使用ES6的模块化标准
# 编译结果中的模块化
可配置
TS中的模块化在编译结果中:
– 如果编译结果的模块化标准是ES6: 没有区别
– 如果编译结果的模块化标准是 commonjs: 导出的声明会变成exports的属性,默认的导出会变成expoerts的default属性;
# 如何在TS中书写commonjs模块化代码
导出: export = xxx
导入: import xxx = require(“xxx”)