本文位转载,
1、转载====>
tsconfig.json详细配置_佚名程序员的博客-CSDN博客
2、转载====>
tsconfig.json各配置属性详解 – 知乎
仅供分析,请勿用于商业用途
//自用版-添加其他看下面
{
/* 根选项 */
"include": ["./src/**/*"], // 指定被编译文件所在的目录
"exclude": [], // 指定不需要被编译的目录
//使用小技巧:在填写路径时 ** 表示任意目录, * 表示任意文件。
/* 项目选项 */
"compilerOptions": {
"target": "ES6", // 目标语言的版本
"module": "commonjs", // 生成代码的模板标准
"lib": ["DOM","ES5","ES6","ES7","ScriptHost"], // TS需要引用的库
"outDir": "./dist", // 指定输出目录
"rootDir": "./", // 指定输出文件目录(用于输出),用于控制输出目录结构
"allowJs": true, // 允许编译器编译JS,JSX文件
"checkJs": true, // 允许在JS文件中报错,通常与allowJS一起使用
"removeComments": true, // 删除注释
"esModuleInterop": true, // 允许export=导出,由import from 导入
/* 严格检查选项 */
"strict": true, // 开启所有严格的类型检查
"alwaysStrict": true, // 在代码中注入'use strict'
"noImplicitAny": true, // 不允许隐式的any类型
"noImplicitThis": true, // 不允许this有隐式的any类型
"strictNullChecks": true, // 不允许把null、undefined赋值给其他类型的变量
"strictBindCallApply": true, // 严格的bind/call/apply检查
"strictFunctionTypes": true, // 不允许函数参数双向协变
"strictPropertyInitialization": true, // 类的实例属性必须初始化
/* 额外检查 */
"noUnusedLocals": true,//是否检查未使用的局部变量
"noUnusedParameters": true,//是否检查未使用的参数
"noImplicitReturns": true,//检查函数是否不含有隐式返回值
"noImplicitOverride": true,//是否检查子类继承自基类时,其重载的函数命名与基类的函数不同步问题
"noFallthroughCasesInSwitch": true,//检查switch中是否含有case没有使用break跳出
"noUncheckedIndexedAccess": true,//是否通过索引签名来描述对象上有未知键但已知值的对象
"noPropertyAccessFromIndexSignature": true,//是否通过" . “(obj.key) 语法访问字段和"索引”( obj[“key”]), 以及在类型中声明属性的方式之间的一致性
/* 实验选项 */
"experimentalDecorators": true,//是否启用对装饰器的实验性支持,装饰器是一种语言特性,还没有完全被 JavaScript 规范批准
"emitDecoratorMetadata": true,//为装饰器启用对发出类型元数据的实验性支持
/* 高级选项 */
"forceConsistentCasingInFileNames": true,//是否区分文件系统大小写规则
"extendedDiagnostics": false,//是否查看 TS 在编译时花费的时间
"noEmitOnError": true,//有错误时不进行编译
"resolveJsonModule": true,//是否解析 JSON 模块
},
}
补充
-
compilerOptions
: 编译器的选项,如语言版本、目标 JavaScript 版本、生成的 sourcemap 等。 -
include
: 指定需要编译的文件路径或文件夹路径。 -
exclude
: 指定不需要编译的文件路径或文件夹路径。 -
files
: 指定需要编译的文件列表。 -
extends
: 指定继承自另一个 tsconfig.json 文件。 -
compileOnSave
: 指定是否在保存时编译文件。 -
buildOnSave
: 指定是否在保存时编译文件。 -
target
:编译目标 JavaScript 版本,可以是 “ES3″,”ES5” 或 “ES2015” 等。 -
module
:指定模块系统,可以是 “CommonJS”,”AMD” 或 “System” 等。 -
sourceMap
:是否生成 sourcemap 文件。 -
outDir
:编译输出目录。 -
rootDir
:设置项目的根目录。 -
strict
:是否开启严格类型检查。 -
noImplicitAny
:是否禁止隐式 any 类型。 -
lib
:指定要包含在编译中的库文件,如 “es2015″。 -
paths
: 指定模块路径别名。 -
baseUrl
: 指定基础目录。 -
jsx
: 指定 JSX 的处理方式。 -
allowJs
: 是否允许编译 JavaScript 文件。 -
checkJs
: 是否检查 JavaScript 文件。 -
declaration
: 是否生成声明文件。 -
declarationMap
: 是否生成声明文件的 sourcemap。 -
emitDecoratorMetadata
: 是否支持装饰器。 -
experimentalDecorators
: 是否支持实验性装饰器。 -
listEmittedFiles
: 是否列出所有输出的文件。 -
listFiles
: 是否列出所有编译过的文件。 -
locale
: 指定本地化语言。 -
mapRoot
: 指定 sourcemap 文件的根目录。 -
moduleResolution
: 指定模块解析策略。 -
noEmit
: 是否禁止输出 JavaScript 代码。 -
noEmitHelpers
: 是否禁止输出辅助函数。 -
noEmitOnError
: 是否在发生错误时禁止输出 JavaScript 代码。 -
noImplicitReturns
: 是否禁止隐式返回。 -
noUnusedLocals
: 是否检查未使用的局部变量。 -
noUnusedParameters
: 是否检查未使用的参数。 -
preserveConstEnums
: 是否保留 const 枚举。 -
pretty
: 是否格式化输出的 JavaScript 代码。 -
removeComments
: 是否移除注释。 -
skipLibCheck
: 是否跳过检查库文件。 -
sourceRoot
: 指定源文件的根目录。 -
suppressExcessPropertyErrors
: 是否禁止过多属性错误。 -
suppressImplicitAnyIndexErrors
: 是否禁止隐式 any 类型索引错误。 -
typeRoots
: 指定类型声明文件的根目录。 -
types
: 指定需要包含在编译中的类型声明文件。 -
watch
: 是否监视文件变化并重新编译。