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完整协议说明
评论