《十》TypeScript 的配置文件 tsconfig.json

使用 tsc --init 可以在当前的根目录下自动生成 tsconfig.json 配置文件。tsconfig.json 配置文件中是一个对象,其中包含很多的 key/value。

tsconfig.json 配置文件中可以写注释。
实际开发中,选择 TypeScript 模板时,tsconfig.json 配置文件都会被默认配置好的。

tsconfig.json 配置文件的作用:

tsconfig.json 配置文件有两个作用:

  1. 最主要的作用是让 TypeScript 编译器在编译的时候,知道如何编译 TypeScript 代码和进行类型检测。

    例如:
    将 TypeScript 编译成哪个版本的 JavaScript。
    在编译过程中也会进行类型检测,如果发现类型错误,将会编译失败。

  2. 编辑器(比如 VSCode 等)会自动读取 tsconfig.json 配置文件中的配置信息,因此,在编辑器中编写 TypeScript 代码时,可以让编辑器判断 TypeScript 代码是否正确,给出代码提示。

tsconfig.json 配置文件在编译时是如何被使用的?

使用 TypeScript 编译器时:

  1. 在调用 tsc 命令时,如果没有文件参数,编译器将会由当前目录开始开始向父级目录寻找包含 tsconfig.json 配置文件的目录,读取配置信息并根据配置选项编译目录下的全部文件。
  2. 在调用 tsc 命令时,如果有文件参数(例如:tsc index.ts),tsconfig.json 配置文件将会被忽略。

在 Webpck 中使用 ts-loader 时:

在 Webpck 中使用 ts-loader 进行编译打包时,也会自动读取 tsconfig.json 配置文件,根据配置选项来编译 TypeScript 代码。

配置选项:

tsconfig.json 配置文件中的编译选项很多,常用配置选项的有:

  1. include:是一个数组,用来指定需要被编译的文件目录,默认值是 [**/*]

    ** 表示任意目录,* 表示任意文件。

    // 所有 src 目录和 tests 目录下的文件都会被编译
    "include": ["src/**/*", "tests/**/*"]
    
  2. exclude:是一个数组,用来指定不需要被编译的文件目录,默认值是["node_mudules", "bower_components", "jspm_packages"]

    // src/utils 目录下的文件都不会被编译
    "include": ["./src/utils/**/*"]
    
  3. files:是一个数组,用来指定需要被编译的文件。只有需要编译的文件很少时才会使用。

    // 列表中的文件都会被TS编译器所编译
    "files": [
    	"core.ts",
        "sys.ts",
        "types.ts",
        "scanner.ts",  
     ]
    
  4. extends:用来定义被继承的配置文件。

    // 当前配置文件中会自动包含 config 目录下 base.json 中的所有配置信息
     "extends": "./configs/base"
    
  5. compilerOptions:编译选项,包含多个子选项,用来完成对编译的配置。

    • target:用来指定 TS 被编译为的 JS 的版本。
      // 编写的 TS 代码将会被编译为 ES6 版本的 JS 代码
      "compilerOptions": {
      	"target": "ES2015"
      }
      
    • module:设置编译后的代码使用的模块化规范。
      "compilerOptions": {
      	"module": "commonjs"
      }
      
    • lib:用来指定项目中要使用的库。一般情况下使用默认值,不需要改。
      "compilerOptions": {
      	"lib": ["ES6", "DOM"]
      }
      
    • outDir:用来指定编译后文件的所在目录。默认情况下,编译后的 JS 文件会和 TS 文件位于相同的目录,设置 outDir 后可以改变编译后文件的位置。
      // 设置后编译后的 JS 文件将会生成到 dist 目录
      "compilerOptions": {
      	"outDir": "dist"
      }
      
    • outFile:用来将代码编译合并为一个 JS 文件。设置 outFile 后,所有全局作用域中的代码会编译合并到同一个文件中。
      "compilerOptions": {
      	"outFile": "dist/app.js"
      }
      
    • rootDir:指定代码的根目录,默认情况下编译后文件的目录结构会以最长的公共目录为根目录,通过 rootDir 可以手动指定根目录。
    • baseUrl:指定模块解析的根路径。当使用相对路径导入模块时,TypeScript 会以 baseUrl 为基准来解析这些路径。
    • paths:创建模块的映射关系,可以将特定的模块名映射到实际的文件路径。
    • allowJs:是否对 JS 文件编译。默认值为 false。
    • checkJs:是否对 JS 文件进行检查。默认值为 false。
    • removeComments:是否删除注释。默认值为 false。
    • noEmit:对代码进行编译,但不生成编译后的文件。默认值为 false。
    • noEmitOnError:当有错误的时候不生成编译后的文件。默认值为 false。
    • alwaysStrict:用来设置编译后的文件是否使用严格模式。默认值为 false。
    • sourceMap:是否生成 sourceMap。默认值为 false。
    • strict:TypeScript 严格检查的总开关。默认值为 false。
    • noImplicitAny:不允许隐式的 any 类型。默认值为 false。
    • noImplicitThis:不允许不明确类型的 this。默认值为 false。
    • strictNullChecks:严格地检查空值。默认值为 false。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值