tsc编译

编译单个ts为js

$ tsc basic.ts

编译多个ts为js

# 在项目根目录下初始化tsconfig.json配置文件
$ tsc --init
# 使用tsc命令,编译当前目录下的所有js文件
$ tsc

监视编译

# --watch, -w  Watch input files.
# 当ts文件更新时,会自动编译
tsc -w basic.ts

# 监视所有ts文件
tsc -w 

tscconfig.json配置文件

{
  // 只包含
  "include": [
    // 根目录下的src下的任意文件以及目录都会被编译,找不到src目录将会报错,
    "./src/**/*"
  ],
  // 不包含,
  "exclude": [
    // hello 下的文件不需要被编译,
    "./src/hello/**"
  ],
  // 继承其他json的配置,
  "extends": "./config/base",
  // 类似include,指定编译的ts源码文件,
  "files": [
    "src/a.ts",
    "src/b.ts"
  ],
  // 编译选项
  "compilerOptions": {
    // 指定ts要编译为的es版本
    "target": "ES6",
    // 指定模块化标准
    "module": "ES6",
    // 指定项目中要使用的ts库
    "lib": [
      // 引入dom库
//      "DOM"
    ],
    // 编译后的js文件的存放路径
    "outDir": "./dist",
    // 将生成的结果合并成一个js文件
    // 前提是 module 必须是 amd 或者 system
//    "outFile": "app.js",


    // 是否对js文件进行编译
    "allowJs": false,
    // 是否检查js语法
    "checkJs": false,
    // 编译后是否移除注释
    "removeComments": true,
    // 是否不生成编译后的文件,默认false,如果是true,不会生成编译后的js文件,只执行编译过程
    "noEmit": false,
    // 当有错误时,不生成编译后的文件
    "noEmitOnError": true,



    // 所有严格检查的总开关,推荐全部打开
    "strict": true,
    // 开启严格模式,相当于 use strict; 默认是false
    "alwaysStrict": true,
    // 隐式any变量, 即不指定类型时,类型不允许设置为any,默认false,通常设置true
    "noImplicitAny": true,
    // 隐式this,不明确类型的this
    // 比如: function f() {alert(this)} 这个this无法确定类型,有可能是方法调用,有可能是函数调用
    // 如果设置为true,将会检查隐式this,并报错
    "noImplicitThis": true,
    // 空检查警告
    "strictNullChecks": true

  }
}

最后更新于