配置及释义
compileOnSave: 在保存文件时触发编译,默认为false。
extends: 指定继承的配置文件路径。
files: 指定要包含在编译中的文件列表。
include: 指定要包含在编译中的文件或目录的匹配模式列表。
exclude: 指定要排除在编译中的文件或目录的匹配模式列表。
references: 指定引用的项目文件列表。
compileOptions: 编译选项。
target: 指定要编译的目标JavaScript版本。默认为"es3"。
module: 指定模块代码生成的方式。常用值包括"commonjs"、"amd"、"es2015"等。
lib: 指定在编译过程中需要包含的库文件。默认包含"dom"、"es5"、"scripthost"等。
jsx: 指定使用的JSX解析器。常用值包括"preserve"、"react"、"react-native"等。
declarationMap: 生成相应的声明文件的源映射文件。
inlineSourceMap: 将源映射文件嵌入到输出文件中。
inlineSources: 将源文件的内容嵌入到源映射文件中。
outDir: 指定编译后的JavaScript文件输出的目录。
outFile: 指定编译后的单个JavaScript文件的输出路径。
rootDir: 指定用于编译的根文件夹。
removeComments: 不生成编译后的JavaScript文件中的注释。
noEmit: 不生成编译后的JavaScript文件。
importHelpers: 为辅助函数生成导入语句,以减少代码的体积。
downlevelIteration: 在ES5代码中使用迭代器时,编译成兼容的for循环
strict: 启用所有严格类型检查选项。
strictNullChecks: 当启用严格的null检查时,null和undefined只能被赋值给自身和void类型。
strictFunctionTypes: 当启用严格函数类型检查时,函数参数必须具有完全匹配的类型。
strictPropertyInitialization: 类的非undefined属性必须在构造函数中初始化。
alwaysStrict: 在生成的JavaScript文件中,始终加入"use strict"指令。
noUnusedLocals: 发出警告,当有未使用的局部变量。
allowUnreachableCode: 允许存在不可达代码。
forceConsistentCasingInFileNames: 要求在文件名中使用一致的大小写。
rootDirs: 指定多个根文件夹的路径。
typeRoots: 指定用于查找类型声明文件的目录。
types: 指定需要包含的类型声明文件。
allowSyntheticDefaultImports: 允许使用默认导入语法来导入没有默认导出的模块。
esModuleInterop: 是否将导出的模块视作一个对象,而不是零散的属性,对象:import xx from xxx,零散:import xx as xxx from 'xx'
preserveSymlinks: 保留符号链接的路径。
skipLibCheck: 跳过对声明文件的类型检查。
resolveJsonModule :启用对使用import读取json模块的支持。
incremental: 在构建过程中生成增量编译信息,提高增量构建性能。
tsBuildInfoFile: 指定用于增量构建的文件名。
composite: 启用项目合成模式,用于更快的增量构建。
strictBindCallApply: 对bind、call和apply方法的参数类型进行更严格的检查。
noImplicitOverride: 当未覆盖重写父类方法时,发出警告。
noPropertyAccessFromIndexSignature: 不允许通过索引签名访问对象属性。
allowUnusedLabels: 允许未使用的标签。
noUncheckedIndexedAccess: 对通过索引访问数组或元组时的类型检查更加严格。
assumeChangesOnlyAffectDirectDependencies: 当启用时,指定只有直接依赖项发生更改时才进行增量构建。
noImplicitAny: 在没有明确指定类型的情况下,禁止隐式使用any类型。
noImplicitReturns: 当函数缺少显式的返回语句时发出警告。
noFallthroughCasesInSwitch: 当switch语句中出现“fall through”现象时发出警告。
noUnusedParameters: 发出警告,当有未使用的函数参数时。
noImplicitThis: 当this具有隐式的any类型时发出警告。
baseUrl: 设置项目的基本URL,用于解析非相对模块名。
paths: 配置模块别名,用于简化模块引入的路径。
sourceMap: 是否生成源映射文件,用于在浏览器中调试TypeScript源代码。
declaration: 是否生成声明文件(.d.ts文件),用于提供给其他TypeScript和JavaScript项目进行类型检查。
allowJs: 是否允许在TypeScript项目中导入和编译JavaScript文件。
checkJs: 是否对导入的JavaScript文件进行类型检查。
noEmitOnError: 在编译错误时阻止生成输出文件。
noImplicitUseStrict: 不在生成的JavaScript文件开头插入"use strict"。
experimentalDecorators: 启用实验性的装饰器语法。
noErrorTruncation: 在报告错误时显示完整的错误消息。
preserveConstEnums: 保留数字枚举的常量值。
isolatedModules: 将每个文件视为独立的模块,不进行全局模块合并处理。
moduleResolution: 指定模块解析策略,可以是"node"、"classic"或"node12"。
charset: 指定输入文件的字符集。
useDefineForClassFields:定义类字段使用#前缀来标识私有字段,并且类字段不再需要显式的初始化值,默认false
其中常用的配置及可选项
compileOptions:
<!-- 指定要编译的目标JavaScript版本。默认为"es3" -->
target: "es3", "es5", "es2015", "es2016", "es2017", "es2018", "es2019", "es2020", "es2021", "esnext"
<!-- 指定模块代码生成的方式。 -->
module: "commonjs", "amd", "es2015", "es2020", "none"
<!-- 指定在编译过程中需要包含的库文件 -->
lib: "es5", "es6", "es7", "es2015", "es2016", "es2017", "es2018", "es2019", "es2020", "es2021", "dom", "webworker", "scripthost", "esnext", "esnext.bigint", "esnext.intl", "esnext.promise", "esnext.string", "esnext.symbol"
<!-- 启用所有严格类型检查选项 -->
strict: true, false
<!-- 在没有明确指定类型的情况下,禁止隐式使用any类型 -->
noImplicitAny: true, false
<!-- 当启用严格的null检查时,null和undefined只能被赋值给自身和void类型 -->
strictNullChecks: true, false
<!-- 当启用严格函数类型检查时,函数参数必须具有完全匹配的类型 -->
strictFunctionTypes: true, false
<!-- 发出警告,当有未使用的局部变量 -->
noUnusedLocals: true, false
<!-- 发出警告,函数参数时 -->
noUnusedParameters: true, false
<!-- 当函数缺少显式的返回语句时发出警告 -->
noImplicitReturns: true, false
<!-- 启用对默认导出的模块的Interop支持 -->
esModuleInterop: true, false
<!-- 允许使用默认导入语法来导入没有默认导出的模块 -->
allowSyntheticDefaultImports: true, false
<!-- 是否生成源映射文件,用于在浏览器中调试TypeScript源代码 -->
sourceMap: true, false
<!-- 指定编译后的JavaScript文件输出的目录 -->
outDir: 目录路径
<!-- 是否生成声明文件(.d.ts文件),用于提供给其他TypeScript和JavaScript项目进行类型检查 -->
declaration: true, false
<!-- 不生成编译后的JavaScript文件 -->
noEmit: true, false
<!-- 启用项目合成模式,用于更快的增量构建 -->
composite: true, false
<!-- 不生成编译后的JavaScript文件中的注释 -->
removeComments: true, false
noLib: true, false
<!-- 启用对使用import读取json模块的支持 -->
resolveJsonModule: true, false
<!-- 允许存在不可达代码 -->
allowUnreachableCode: true, false
<!-- 保留数字枚举的常量值 -->
preserveConstEnums: true, false
<!-- 设置项目的基本URL,用于解析非相对模块名 -->
baseUrl: 目录路径
<!-- 配置模块别名,用于简化模块引入的路径 -->
paths: {"模块名": ["对应模块路径"]}
<!-- 指定用于查找类型声明文件的目录 -->
typeRoots: ["目录路径1", "目录路径2"]
declarationDir: 目录路径
vue3项目配置
{
"compilerOptions": {
"target": "esnext",
"useDefineForClassFields": true,
"module": "esnext",
"moduleResolution": "node",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"resolveJsonModule": true,
"isolatedModules": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"],
"skipLibCheck": true,
"types": [
"node",
"vite/client",
"element-plus/global",
"vitest",
"vitest/globals"
],
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"types/**/*.d.ts",
"vite.config.ts",
"vitest.config.ts"
],
"exclude": ["node_modules", "dist"]
}