tsconfig.json 配置说明

tsconfig.json 配置项详解

{
  "compileOnSave": true, // 让IDE在保存文件的时候根据tsconfig.json重新生成文件

  "compilerOptions": {
  
  	"allowJs": false, // 是否允许编译JS文件
  	"allowSyntheticDefaultImports": true, // 允许从没有设置默认导出的模块中默认导入。这并不影响代码的输出,仅为了类型检查。
  	"allowUnreachableCode": false,	// 不报告执行不到的代码错误
  	"allowUnusedLabels": false, // 不报告未使用的标签错误
  	"alwaysStrict": false, // 以严格模式解析并为每个源文件生成 "use strict"语句
  	
  	"baseUrl": "./", // 解析非相对模块名的基准目录
  	
  	"charset": "utf8", // 输入文件的字符集
  	"checkJs": false, // 在 .js文件中报告错误, 与 allowJs 配合使用
  	
  	"declaration": false, // 生成相应的 .d.ts文件
  	"declarationDir": "", // 生成声明文件的输出路径
  	"diagnostics": false, // 显示诊断信息
  	"disableSizeLimit": false, // 禁用JavaScript工程体积大小的限制

   	"emitBOM": false, // 在输出文件的开头加入BOM头(UTF-8 Byte Order Mark)
   	"emitDecoratorMetadata": false, // 给源码里的装饰器声明加上设计类型元数据
   	"experimentalDecorators": false, // 启用实验性的ES装饰器
   	"extendedDiagnostics": false, // 显示详细的诊段信息

	"forceConsistentCasingInFileNames": false // 禁止对同一个文件的不一致的引用

	"importHelpers": false. // 从 tslib 导入辅助工具函数(比如 __extends, __rest等)
	"inlineSourceMap": false, // 生成单个sourcemaps文件,而不是将每sourcemaps生成不同的文件
	"inlineSources": false, // 将代码与sourcemaps生成到一个文件中,要求同时设置了 inlineSourceMap或sourceMap属性
	"isolatedModules": false, // 将每个文件作为单独的模块(与“ts.transpileModule”类似)

	"jsx": "Preserve", // 在 .tsx文件里支持JSX: "React"或 "Preserve"
	"jsxFactory": "React.createElement", // 指定生成目标为react JSX时,使用的JSX工厂函数,比如 React.createElement或 h

  	"lib":[	// 编译过程中需要引入的库文件的列表
	  "ESNext",
	  "DOM"
	],
	"listEmittedFiles": false, // 打印出编译后生成文件的名字
	"listFiles": false, // 编译过程中打印文件名
	"locale": "en-us", // 显示错误信息时使用的语言,比如:en-us

	"mapRoot": "", // 为调试器指定指定sourcemap文件的路径,而不是使用生成时的路径。当 .map文件是在运行时指定的,并不同于 js文件的地址时使用这个标记。指定的路径会嵌入到 sourceMap里告诉调试器到哪里去找它们
	"maxNodeModuleJsDepth": 0, // node_modules依赖的最大搜索深度并加载JavaScript文件。仅适用于 allowJs
	"module": "ES5", // 指定生成哪个模块系统代码: "None", "CommonJS", "AMD", "System", "UMD", "ES6"或 "ES2015"(只有 "AMD"和 "System"能和 outFile一起使用)
	"moduleResolution": "Classic", // 决定如何处理模块。或者是"Node"对于Node.js/io.js,或者是"Classic"(默认)
	
	"newLine": '', // 当生成文件时指定行结束符: "crlf"(windows)或 "lf"(unix)
	"noEmit": false, // 不生成输出文件
	"noEmitHelpers": false, // 不在输出文件中生成用户自定义的帮助函数代码,如 __extends
	"noEmitOnError": false, // 报错时不生成输出文件
	"noErrorTruncation": false, // 不截短错误消息
	"noFallthroughCasesInSwitch": false, // 报告switch语句的fallthrough错误
	"noImplicitAny": false, // 在表达式和声明上有隐含的 any类型时报错
	"noImplicitReturns": false, // 不是函数的所有返回路径都有返回值时报错
	"noImplicitThis": false, // 当 this表达式的值为 any类型的时候,生成一个错误
	"noImplicitUseStrict": false, // 模块输出中不包含 "use strict"指令
	"noLib": false, // 不包含默认的库文件
	"noResolve": false, // 不把reference或模块导入的文件加到编译文件列表
	"noStrictGenericChecks": false, // 禁用在函数类型里对泛型签名进行严格检查
	"noUnusedLocals": false, // 若有未使用的局部变量则抛错
	"noUnusedParameters": false, // 若有未使用的参数则抛错

	"outDir": "", // 重定向输出目录
	"outFile": "", // 将输出文件合并为一个文件。合并的顺序是根据传入编译器的文件顺序和 reference 和 import的文件顺序决定的
	
	"paths": {}, // 模块名到基于 baseUrl的路径映射的列表
	"preserveConstEnums": false, // 保留 const和 enum声明
	"preserveSymlinks": false, // 不把符号链接解析为其真实路径;将符号链接文件视为真正的文件
	"preserveWatchOutput": false, // 保留watch模式下过时的控制台输出
	"pretty": false, // 给错误和消息设置样式,使用颜色和上下文
	"project": "", // 编译指定目录下的项目。这个目录应该包含一个 tsconfig.json文件来管理编译
	
	"reactNamespace": "React", // 当目标为生成 "react" JSX时,指定 createElement和 __spread的调用对象
	"removeComments": false, // 删除所有注释,除了以 /!*开头的版权信息
	"rootDir": "", // 仅用来控制输出的目录结构 --outDir
	
	"skipDefaultLibCheck": false, // 忽略 库的默认声明文件的类型检查
	"skipLibCheck": false, // 忽略所有的声明文件( *.d.ts)的类型检查
	"sourceMap": false, // 生成相应的 .map文件
	"sourceRoot": "", // 指定TypeScript源文件的路径,以便调试器定位。当TypeScript文件的位置是在运行时指定时使用此标记。路径信息会被加到 sourceMap里
	"strict": false, // 启用所有严格类型检查选项。 //启用 --strict相当于启用 --noImplicitAny, --noImplicitThis, --alwaysStrict, --strictNullChecks和 --strictFunctionTypes和--strictPropertyInitialization
	"strictFunctionTypes": false, // 禁用函数参数双向协变检查
	"strictPropertyInitialization": false, //确保类的非undefined属性已经在构造函数里初始化。若要令此选项生效,需要同时启用--strictNullChecks
	"strictNullChecks": false, // 在严格的 null检查模式下, null和 undefined值不包含在任何类型里,只允许用它们自己和 any来赋值(有个例外, undefined可以赋值到 void)
	"stripInternal": false, // 不对具有 /** @internal */ JSDoc注解的代码生成代码
	"suppressExcessPropertyErrors": false, // 阻止对对象字面量的额外属性检查
	"suppressImplicitAnyIndexErrors": false, // 阻止 --noImplicitAny对缺少索引签名的索引对象报错
	
	"target": "ES5", // 指定ECMAScript目标版本 "ES3"(默认), "ES5", "ES6"/ "ES2015", "ES2016", "ES2017"或 "ESNext"
	"traceResolution": false, // 生成模块解析日志信息
	"types": [], // 要包含的类型声明文件名列表
	"typeRoots": [] // 要包含的类型声明文件路径列表
  },
  // 指定一个匹配列表(属于自动指定该路径下的所有ts相关文件)
  "include": [
    "src/**/*"
  ],
  // 指定一个排除列表(include的反向操作)
  "exclude": [
    "demo.ts"
  ],
  // 指定指定一个包含相对或绝对文件路径的列表, 表示哪些文件使用该配置(属于手动一个个指定文件)
  "files": [
    "demo.ts",
    "core.ts",
    "sys.ts",
    "types.ts",
    "scanner.ts",
  ],
  // 一个对象数组,指定要引用的项目
  "references": [
	{ "path": "../src" }
  ]
}

includeexclude 属性指定一个文件 glob 匹配模式列表。 支持的 glob 通配符有:

  • * 匹配0或多个字符(不包括目录分隔符)
  • ? 匹配一个任意字符(不包括目录分隔符)
  • **/ 递归匹配任意子目录

参考资料: https://www.tslang.cn/docs/handbook/tsconfig-json.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值