写点什么

TypeScript | 第七章:配置文件说明

用户头像
梁龙先森
关注
发布于: 2020 年 12 月 27 日
TypeScript | 第七章:配置文件说明

TypeScript 系列学习笔记:

TypeScript | 第一章:环境搭建及基础数据类型

TypeScript | 第二章:类、接口和之间的关系

TypeScript | 第三章:函数、泛型和枚举

TypeScript | 第四章:命名空间和模块

TypeScript | 第五章:高级类型

TypeScript | 第六章:理解声明合并,以及编写声明文件

一. 路径

TypeScript 项目的配置文件为tsconfig.json,通常位于项目的根目录,作为项目的配置文件。

当不带任何输入文件时,编译器会从当前目录开始查找,然后逐级搜索父目录。配置文件也可通过命名行参数--project指定包含配置文件的目录,命令行指定配置文件后,其他tsconfig.json会被忽略。

二、配置项详解

1. tsconfig.json 常用配置
{	// 指定需要编译文件,相对于配置文件的路径  "files":[], 	   // 指定不需要编辑的文件  "exclude":[],    // 指定需要编译的文件     "include":[],   // 指定继承的配置文件,会覆盖当前配置    "extends":"",  // ts编译器编译配置项    "compilerOptions":{},  // IDE保存立即编译文件  "compileOnSave":true,  // 整个工程的定义定义.d.ts  "typeAcquisition":{},  // 引用的工程    "references":[]}
复制代码

文件查找优先级:命令行配置 > files > exclude > include 

exclude 默认为:nodemodules, bowercomponents, jspm_packages 以及 outDir 配置项。

include 与 exclude 上一个文件或者路径是互斥的。

2. @types、typeRoots 和 types

默认所有可见的@types包会在编译的过程中被包含中,而node_modules/@types文件夹以及它们子文件下所有的包都是可见的。因此项目想按需引入指定的包,可以如下配置:

{  "compilerOptions": {    // 仅会包含typings下面的包,而不包含node_modules/@types底下的    "typeRoots" : ["./typings"]     // 按需引入node_modules/@types底下的包,未声明的不会引入    "types":["node","lodash","express"]  }}
复制代码
3. extends 继承配置

tsconfig.json文件可以利用extends属性从另一个配置文件里继承配置。原文件的配置优先加载,然后被继承文件重写。如果发现循环引用,则会报错。

// config/base.json{  "compilerOptions": {    "noImplicitAny": true,    "strictNullChecks": true  }}
// tsconfig.json{ "extends": "./configs/base", // base.json配置文件将重写tsconfig.json对应配置 "compileOnSave": true, "files": [ "main.ts", "supplemental.ts" ]}
复制代码
4. compilerOptions 其他配置声明

compilerOptions可以被忽略,使用默认值。

{  "compilerOptions": {     // 指定的ECMAScript目标版本     "target": "es5",       // 指定模块代码生成     "module": "commonjs",        // 移除注释     "removeComments": true,      // 生成相应的“ .d.ts”文件     "declaration": true,     // 指定输出目录     "outDir": "./",      // 严格null/undefined校验     "strictNullChecks": true,     ... // 其他配置查看文档  }}
复制代码

三、总结

至此我们大体浏览了tsconfig.json配置文件。


相关文档:

TypeScript编译器选项

tsconfig.json完整协议说明


发布于: 2020 年 12 月 27 日阅读数: 46
用户头像

梁龙先森

关注

脚踏V8引擎的无情写作机器 2018.03.17 加入

还未添加个人简介

评论

发布
暂无评论
TypeScript | 第七章:配置文件说明