上一篇文章提到了tsconfig.json文件中的简单配置项,如include、extends、exclude,本篇文章我们了解一下编译器选择compilerOptions配置选项

 

1、target    用来指定ts被编译为js的ES版本

  有固定值,例如:‘es3’  'es5'  'es6' 'es2015'  'es2018' 等

  “target”: "es2915"

2、moudle 指定要是使用的模块化的规范

  有固定值,例如:none  commonjs  amd  syatem  umd  es6  es2015  es2016  esnext

  引入模块的代码示例(引入m.js文件中的hi变量):

import {hi} from './m.js'

3、lib  指定代码运行时所包含的库(宿主环境) 一般不设置

      可使用的值:es5(es2015)  es5  esnext  DOM   WebWorker   ScriptHost等

4、outDir  用来指定编译后文件所在的目录

  例如: “outDir”: "./dist"

5、outFile  将代码合并为一个文件

  设置outFile后,所有的群全局作用域中的代码会合并到同一个文件中

  注:如果使用模块化,代码合并同一个文件时,moudle 必须设置为system或amd

6、allowJs   是否对js进行编译,默认为false(编译)

   "allowJs": true

7、checkJs   是否检查js代码是否符合语法规范,默认值为false

  "checkJs" : false

  如果设置为不检查的话,下面的js代码会报错

1 let a = 12;
2 a = "hello";

8、removeComments   是否移除js中对应的ts文件中的注释,默认值为false

9、noEmt  不生成编译后的文件

10、noEmtOnError    当有错误时不生成编译后的文件

11、alwaysStrict   用来设置编译后的文件是否使用严格模式   默认为false

        “alwaysStrict”: true

12、noImplicitAny    不允许隐式的any类型

  "noImplicitAny":True

13、noImplicitThis  不允许不明确类型的this

14、strictNullChecks  严格检查空值

  “strictNullChecks”:true

  解决严格检查空值

 1 let box = document.getElementById("box1");
 2 box?.addEventListener("click", function() {
 3     alert("Hello, World!");
 4 })
 5 // The above code is equivalent to the following code:
 6 if(box!=null){
 7     box.addEventListener("click", function() {
 8         alert("Hello, World!");
 9     })
10 }

 15、strict   打开所有严格检查    “strict”:true