tsconfig.json 文件是 TypeScript 项目中的核心配置文件,它用于定义和控制 TypeScript 编译器的行为。通过这个文件,你可以指定编译选项、源文件路径、输出目录以及许多其他与编译过程相关的设置。以下是 tsconfig.json 文件中一些常见配置项的解释:
- compilerOptions:这是 tsconfig.json 文件中最主要的部分,用于设置 TypeScript 编译器的选项。例如:
-
- target:指定要生成的 JavaScript 代码的目标版本,如 es5、es6、es2017 等。
- module:指定模块系统,如 commonjs、amd、esnext 等。
- outDir:指定编译后的 JavaScript 文件输出目录。
- sourceMap:启用或禁用源映射,用于在编译后的代码中保留原始 TypeScript 文件的行号和列号。
- strict:启用严格类型检查,包括 noImplicitAny、strictNullChecks 等。
- esModuleInterop:启用 ES 模块互操作性,允许在 CommonJS 模块中使用 ES 模块。
- include:指定哪些文件应该被包含在编译过程中。例如,你可以指定所有 .ts 和 .tsx 文件。
- exclude:指定哪些文件或目录应该被排除在编译过程之外。例如,你可以排除 node_modules 目录。
- files:列出要编译的文件,这通常用于较小的项目,对于大型项目,include 和 exclude 更常用。
- extends:允许你继承另一个 tsconfig.json 文件的设置,这对于大型项目或具有多个子项目的项目非常有用。
- references:用于引用其他 tsconfig.json 文件,这在大型项目中很有用,可以将项目拆分为多个可独立编译的模块。
通过 tsconfig.json 文件,你可以确保 TypeScript 代码以一致的方式编译,同时还可以根据项目需求定制编译行为,提高代码质量和开发效率。
常用tsconfig配置
{
"compilerOptions": {
"target": "es5", // 指定编译目标的ECMAScript版本
"module": "commonjs", // 指定生成的模块系统
"strict": true, // 启用所有严格类型检查选项
"esModuleInterop": true, // 启用ES模块互操作
"skipLibCheck": true, // 跳过对库文件的类型检查
"outDir": "./dist", // 指定输出目录
"rootDir": "./src", // 指定根目录,用于确定TypeScript输入文件的相对位置
"removeComments": true, // 删除注释
"noImplicitAny": false, // 禁用隐式any类型
"sourceMap": true, // 生成相应的.map文件
"experimentalDecorators": true, // 允许使用实验性的装饰器特性
"emitDecoratorMetadata": true // 为装饰器生成元数据
},
"include": [
"src/**/*" // 包含src目录下的所有文件
],
"exclude": [
"node_modules", // 排除node_modules目录
"**/*.spec.ts" // 排除所有的测试文件
]
}
如果构建时未使用变量报错
这是因为ts中开启了严格模式,找到tsconfig.json文件
"strict": true, // 开启严格模式,检查类型声明和赋值...是否合法
"noUnusedLocals": true, // 检查是否存在未使用的变量
"noUnusedParameters": true, // 检查是否存在会使用的函数参数
"noFallthroughCasesInSwitch": true, // 检查switch语句中是否存在break
修改解决:按照对应的需求修改为false就可以了
"strict": true,
"noUnusedLocals": false,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true