目录

 一、自动编译文件

二、自动编译整个项目

三、配置选项

include

exclude

extends

files

compilerOptions


 一、自动编译文件

  • 编译文件时,使用-w指令后,TS编译器会自动监视文件的变化,并在文件发生变化时对文件进行重新编译。
// 指令
tsc xxx.ts -w  // 修改后自动更新js文件

二、自动编译整个项目

  • 如果直接使用tsc命令,则可以自动将当前项目下的所有ts文件编译为js文件;
  • 但是前提是在项目根目录下创建一个ts的配置文件tsconfig.json;
  • tsconfig.json是一个json文件,添加文件后,只需要tsc命令即可完成对整个项目的编译。

三、配置选项

include

// 用来指定哪些ts文件需要被编译
// 默认值:["**/*"]
// 路径:** 表示任意目录;* 表示任意文件
"include": [
  "./src/**/*",
  "tests/**/*"
]

exclude

// 定义需要排除在外的目录
// 默认值:[“node_modules”, “bower_components”, “jspm_packages”]
"exclude": ["./src/hello/**/*"]
// 上述示例中,src下hello目录下的文件都不会被编译

extends

// 定义被继承的配置文件
"extends": "./configs/base"
// 上述示例中,当前配置文件中会自动包含config目录下base.json中的所有配置信息

files

// 指定被编译文件的列表,只有需要编译的文件少时才会用到
"files": [
  "core.ts",
  "sys.ts",
  "types.ts",
  "scanner.ts",
  "parser.ts",
]
// 列表中的文件都会被TS编译器所编译

compilerOptions

"compilerOptions": {
  // target 用来指定ts被编译为的es版本
  // es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020,
  "target": "es6",
  // module 指定要使用的模块化的规范
  // none, commonjs, amd, system, umd, es6, es2015, es2020, esnext
  "module": "esnext",
  // lib 指定项目中要使用的库
  // 过多,在此省略。。。
  "lib": [
    "dom",
    "dom.iterable",
    "ESNext"
  ],

  // 以下默认值一般都为 false----------------------
  // removeComments 是否移除注释
  "removeComments": true,
  // allowJs 是否对js文件进行编译,默认false
  "allowJs": false,
  // noEmit 不生成编译后产生的文件
  "noEmit": true,
  // outDir 用来指定编译后文件所在的目录
  "outDir": "./dist",
  // outFile 将代码合并为一个文件
  "outFile": "./dist.app.js",
  // checkJs 是否检查js代码是否符合语法规范,默认false
  "checkJs": true,
  // noEmitOnError 当有错误时不生成编译后产生的文件
  "noEmitOnError": true,
  
  // 语法检查:-----------------------------------
  // 所有严格模式的总开关
  "strict": true, 
  // 用来设置编译后的文件是否使用严格模式
  "alwaysStrict": true,
  // 不允许隐式的 any 类型
  "noImplicitAny": true,
  // 不允许不明确类型的 this
  "noImplicitThis": true,
  // 严格的检查空值
  "strictNullChecks": true,
}