//自用版-添加其他看下面
{/* 根选项 */"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 模块},
}

tsconfig.json文件是 TypeScript 编译器的配置文件,TypeScript 编译器可以根据它的规则来对代码进行编译。

根选项
include:指定被编译文件所在的目录。
exclude:指定不需要被编译的目录。
extends:指定要继承的配置文件。
files:指定被编译的文件。
references:项目引用,是 TS 3.0 中的一项新功能,它允许将 TS 程序组织成更小的部分。
使用小技巧:在填写路径时 ** 表示任意目录, * 表示任意文件。
compilerOptions
​ 定义项目的运行时期望、JavaScript 的发出方式和位置以及与现有 JavaScript 代码的集成级别。

项目选项
incremental:是否启用增量编译,指再次编译时只编译增加的内容,默认:false。
target:指定ts编译成ES的版本。
module:指定编译后代码使用的模块化规范。
lib:指定项目运行时使用的库。
outDir:指定编译后文件所在目录。
outFile:将代码编译合并成一个文件,默认将所有全局作用域中的代码合并成一个文件。
rootDir:指定输入文件的根目录,默认情况下当前的项目目录为根目录。
allowJs:是否对js文件进行编译,默认:false。
checkJs:是否检查js代码是否符合语法规范,当使用checkJs,必须使用allowJs,默认:false。
removeComments:是否移除注释,默认:false
noEmit:不生成编译后的文件,默认:false。
jsx:指定JSX代码生成用于的开发环境。
plugins:在编辑器中运行的语言服务插件列表。
declaration:是否生成相应的 .d.ts 声明文件,默认:false。
declarationMap:是否为每个对应的 .d.ts 文件生成一个 Map 文件,使用该功能时,需要declaration或composite配合一起使用,默认:false。
sourceMap:是否生成相应的Map映射的文件,默认:false。
composite:是否开启项目编译,开启该功能,将会生成被编译文件所在的目录,同时开启declaration、declarationMap和incremental,默认:false。
tsBuildInfoFile:指定增量编译信息文件的位置,使用该功能时,必须开启incremental选项。
importHelpers:是否将辅助函数从 tslib 模块导入,默认:false。
downlevelIteration:是否用于转换为旧版本的 JS 提供可迭代对象的全面支持,默认:false。
isolatedModules:是否将每个文件转换为单独的模块,默认:false。

严格检查
strict:是否启动所有严格检查的总开关,默认:false,启动后将开启所有的严格检查选项。
alwaysStrict:是否以严格模式解析,并为每个源文件发出"use strict",默认:false。
noImplicitAny:是否禁止隐式的any类型,默认:false。
noImplicitThis:是否禁止不明确类型的this,默认:false。
strictNullChecks:是否启用严格的空检查,默认:false。
strictBindCallApply:是否在函数上启用严格的’bind’, 'call’和’apply’方法,默认:false。
strictFunctionTypes:是否启用对函数类型的严格检查,默认:false。
strictPropertyInitialization:是否启用严格检查类的属性初始化,默认:false。

模块解析选项
moduleResolution:指定模块解析策略,node或classic
baseUrl:用于解析非绝对模块名的基本目录,相对模块不受影响。
paths:用于设置模块名称基于baseUrl的路径映射关系。
rootDirs:将多个目录放在一个虚拟目录下,运行编译后文件引入的位置发生改变,也不会报错。
typeRoots:指定声明文件或文件夹的路径列表
types:用来指定需要包含的模块,并将其包含在全局范围内。
allowSyntheticDefaultImports:是否允许从没有默认导出的模块中默认导入,默认:false。
esModuleInterop:是否通过为所有导入模块创建命名空间对象,允许CommonJS和ES模块之间的互操作性,开启改选项时,也自动开启allowSyntheticDefaultImports选项,默认:false。
preserveSymlinks:是否不解析符号链接的真实路径,这是为了在 Node.js 中反映相同的标志,默认:false。
allowUmdGlobalAccess:允许您从模块文件内部访问作为全局变量的 UMD 导出,如果不使用该选项,从 UMD 模块导出需要一个导入声明,默认:false。

Map选项
sourceRoot:指定调试器应定位 TypeScript 文件而不是相对源位置的位置。
mapRoot:指定调试器定位Map文件的位置,而不是生成的位置。
inlineSourceMap:是否将Map文件内容嵌套到 JS 文件中,这会导致 JS 文件变大,但在某些情况下会很方便,默认:false。
inlineSources:是否将 .ts 文件的原始内容作为嵌入字符串包含在 .map 文件中,默认:false。

附加检查
noUnusedLocals:是否检查未使用的局部变量,默认:false。
noUnusedParameters:是否检查未使用的参数,默认:false。
noImplicitReturns:检查函数是否不含有隐式返回值,默认:false。
noImplicitOverride:是否检查子类继承自基类时,其重载的函数命名与基类的函数不同步问题,默认:false。
noFallthroughCasesInSwitch:检查switch中是否含有case没有使用break跳出,默认:false。
noUncheckedIndexedAccess:是否通过索引签名来描述对象上有未知键但已知值的对象,默认:false。
noPropertyAccessFromIndexSignature:是否通过" . “(obj.key) 语法访问字段和"索引”( obj[“key”]), 以及在类型中声明属性的方式之间的一致性,默认:false。

实验选项
experimentalDecorators:是否启用对装饰器的实验性支持,装饰器是一种语言特性,还没有完全被 JavaScript 规范批准,默认:false。
emitDecoratorMetadata:为装饰器启用对发出类型元数据的实验性支持,默认:false。

高级选项
allowUnreachableCode:是否允许无法访问的代码(undefined / true / false),默认:undefined。
undefined:向编辑提供建议作为警告。
true:未使用的标签被忽略。
false:引发有关未使用标签的编译器错误。
allowUnusedLabels:是否允许未使用的标签(undefined / true / false),默认:undefined。
undefined:向编辑提供建议作为警告。
true:未使用的标签被忽略。
false:引发有关未使用标签的编译器错误。
assumeChangesOnlyAffectDirectDependencies是否避免重新检查/重建所有真正可能受影响的文件,而只会重新检查/重建已更改的文件以及直接导入它们的文件,默认:false。
charset:字符集(已弃用),默认:utf8
declarationDir:提供一种方法来配置发出声明文件的根目录。
diagnostics:用于输出用于调试的诊断信息
disableReferencedProjectLoad:是否禁用所有可用项目加载到内存中,默认:false。
disableSizeLimit:为了避免在处理非常大的 JS 项目时可能出现的内存膨胀问题,TS 将分配的内存量有一个上限,默认:false。
disableSolutionSearching:在编辑器中搜索查找所有引用或跳转到定义等功能时,禁止包含复合项目,默认:false。
disableSourceOfProjectReferenceRedirect:是否禁用项目引用源重定向,默认:false。
emitBOM:控制TypeScript在写输出文件时是否发出字节顺序标记(BOM),默认:false。
emitDeclarationOnly:是否只发出.d.ts 文件,不发出.js 文件,使用该选项时,需要配合 declaration 或 composite 一起使用,默认:false。
explainFiles:解释文件,此选项用于调试文件如何成为编译的一部分,默认:false。
extendedDiagnostics:是否查看 TS 在编译时花费的时间,默认:false。
forceConsistentCasingInFileNames:是否区分文件系统大小写规则,默认:false。
generateCpuProfile:在编译阶段让 TS 发出 CPU 配置文件,只能通过终端或 CLI 调用 --generateCpuProfile tsc-output.cpuprofile 。
importsNotUsedAsValues:此标志控制如何 import 工作方式,有 3 个不同的选项:remove、preserve 和 error 。
jsxFactory:当使用经典的JSX运行时编译JSX元素时,更改.js文件中调用的函数,默认:React.createElement 。
jsxFragmentFactory:指定 JSX 片段工厂函数在指定了 jsxFactory 编译器选项的情况下针对 react JSX 发出时使用。
jsxImportSource:当在TS 4.1中使用 jsx 作为 react-jsx 或 react-jsxdev 时,声明用于导入jsx和jsxs工厂函数的模块说明符。
keyofStringsOnly:当应用具有字符串索引签名的类型时,此标志将类型操作符的键值更改为返回 string 而不是string | number,已弃用,默认:false。
listEmittedFiles:是否将编译部分生成的文件的名称打印到终端,默认:false。
listFiles:是否打印编译文件部分的名称,默认:false。
maxNodeModuleJsDepth:在node_modules下搜索并加载JavaScript文件的最大依赖深度,默认:0 。
newLine:指定发出文件时要使用的换行规则,CRLF (dos) 或 LF (unix)。
noEmitHelpers:是否使用全局作用域助手函数提供实现,并完全关闭助手函数的发出,而不是使用 importhelper 来导入助手函数,默认:false。
noEmitOnError:有错误时不进行编译,默认:false。
noErrorTruncation:是否禁止截断错误消息,已弃用,默认:false。
noImplicitUseStrict:是否禁止无隐式严格模式,默认:false。
noLib:是否禁止自动包含任何库文件,默认:false。
noResolve:是否禁用析后的文件添加到程序中;默认情况下,TS 会检查 import 和 reference 指令的初始文件集,并将这些解析后的文件添加到你的程序中,默认:false。
noStrictGenericChecks:是否禁用严格的泛型检查,默认:false。
out:该选项以不可预测或一致的方式计算最终文件位置,已弃用,
preserveConstEnums:是否禁止删除枚举常量生成代码中的声明,默认:false。
reactNamespace:React命名空间,使用 jsxFactory 来代替。
resolveJsonModule:是否解析 JSON 模块,默认:false。
skipDefaultLibCheck:是否跳过默认库声明文件的类型检查,默认:false。
skipLibCheck:是否跳过声明文件的类型检查,这可以在编译期间以牺牲类型系统准确性为代价来节省时间,默认:false。
stripInternal:是否禁止 JSDoc 注释中带有@internal注释的代码发出声明,默认:false。
suppressExcessPropertyErrors:是否禁用报告过多的属性错误,默认:false。
suppressImplicitAnyIndexErrors:是否抑制隐式any索引的错误,默认:false。
traceResolution:当尝试调试未包含模块的原因时。启用该选项让 TypeScript 打印有关每个处理文件的解析过程的信息,默认:false。
useDefineForClassFields:此标志用作迁移到即将推出的类字段标准版本的一部分,默认:false。

命令行
preserveWatchOutput:是否在监视模式下保留过时的控制台输出,而不是每次发生更改时都清除屏幕,默认:false。
pretty:是否使用颜色对上下文错误和消息进行样式化,默认:true。

  1. watchOptions
    配置 TypeScript 的 --watch工作方式。

监视选项
watchFile:监视单个文件的策略,默认:useFsEvents
fixedPollingInterval:以固定时间间隔每秒多次检查每个文件的更改。
priorityPollingInterval:每秒多次检查每个文件的更改,但使用启发式方法检查某些类型的文件的频率低于其他文件。
dynamicPriorityPolling:使用动态队列,其中不经常修改的文件将不那么频繁地检查。
useFsEvents:尝试使用操作系统/文件系统的本机事件进行文件更改。
useFsEventsOnParentDirectory:尝试使用操作系统/文件系统的本机事件来监听文件父目录的变化。
watchDirectory:在缺乏递归文件监视功能的系统下如何监视整个目录树的策略,默认:useFsEvents
fixedPollingInterval:以固定时间间隔每秒多次检查每个目录的变化。
dynamicPriorityPolling:使用动态队列,其中不经常修改的目录将不那么频繁地检查。
useFsEvents:尝试使用操作系统/文件系统的本机事件进行目录更改。
fallbackPolling:使用文件系统事件时,此选项指定当系统用完本机文件观察器和/或不支持本机文件观察器时使用的轮询策略,默认:dynamicPriorityPolling
fixedPollingInterval:以固定时间间隔每秒多次检查每个文件的更改。
priorityPollingInterval:每秒多次检查每个文件的更改,但使用启发式方法检查某些类型的文件的频率低于其他文件。
dynamicPriorityPolling:使用动态队列,其中不经常修改的文件将不那么频繁地检查。
synchronousWatchDirectory:禁用对目录的延迟监视。
synchronousWatchDirectory:在本机不支持递归观看的平台上同步调用回调,并更新目录观察者的状态,默认:false。
excludeDirectories:使用排除目录来大幅减少 --watch 期间被监视的文件数量.
excludeFiles:使用excludeFiles从被监视的文件中删除一组特定的文件。

typeAcquisition
类型获取仅对 JavaScript 项目很重要。

  1. 类型获取
    enable:提供在 JavaScript 项目中禁用类型获取的配置,默认:false。
    include:使用 include 来指定应从绝对类型中使用哪些类型。
    exclude:提供用于禁用 JavaScript 项目中某个模块的类型获取的配置
    disableFilenameBasedTypeAcquisition:是否禁用基于文件名的类型获取,TypeScript 的类型获取可以根据项目中的文件名推断应该添加哪些类型,默认:false。

tsconfig.json详细配置相关推荐

  1. gitbook使用及book.json详细配置

    安装 安装命令:1 npm install -g gitbook-cli test 安装完成之后,你可以使用下面的命令来检验是否安装成功. $ gitbook -V CLI version: 2.3. ...

  2. 【react】tsconfig.json中配置react-jsx报错解决方案

    复现 使用新版cra安装ts后,tsconfig报错无法使用react-jsx. 解决方法 请在查看TS文件时调出命令托盘(cmd + shift + p)并键入" select types ...

  3. bpmn js 生成json_你不知道的 tsconfig.json

    在 TypeScript 开发中,tsconfig.json 是个不可或缺的配置文件,它是我们在 TS 项目中最常见的配置文件,那么你真的了解这个文件吗?它里面都有哪些优秀配置?如何配置一个合理的 t ...

  4. Angular应用中tsconfig.json文件配置说明及配置全局路径映射

    tsconfig.json文件配置说明 1. tsconfig.json文件中的选项配置 2. 配置全局路径映射 1. tsconfig.json文件中的选项配置 TypeScript编译器配置文件的 ...

  5. tsconfig.json配置

    什么工具看什么官网-一般都会有说明的 https://www.tslang.cn/docs/handbook/tsconfig-json.html 概述 如果一个目录下存在一个tsconfig.jso ...

  6. java项目引入json配置,TS-28 配置tsconfig.json(3):工程引用

    ts3.0引入的新特性: 工程引用 项目目录树 object/ src/ client/ common/ server/ test/ tsconfig.json 问题: 1.不希望在构建目录dist下 ...

  7. tsconfig.json配置学习笔记

    tsconfig.json介绍 tsconfig.json 是 TypeScript 项目的配置文件.如果一个目录下存在一个 tsconfig.json 文件,那么往往意味着这个目录就是 TypeSc ...

  8. tsconfig.json 配置 update `jsx: “react“` into `jsx: “react-jsx“`终端警告

    使用 umiJS 时出现的终端警告: WARN [WARN] update jsx: "react" into jsx: "react-jsx" to supo ...

  9. TypeScript 里 tsconfig.json 文件的作用

    What is a tsconfig.json 目录中存在 tsconfig.json 文件表明该目录是 TypeScript 项目的根目录. tsconfig.json 文件指定了编译项目所需的根文 ...

  10. 微信小程序 app.json 详细介绍

    微信小程序 app.json 详细介绍 {// 写各个页面的路径 (新增页面或者减少页面都要对其进行修改)"pages": ["pages/index/index&quo ...

最新文章

  1. LeetCode OJ:Remove Element(移除元素)
  2. 解决bootstrap-table多次请求只触发一次的问题
  3. java中synchronized使用方法
  4. 16个在线机器学习视频与教程
  5. [翻译]运用文件解析器在任意文件中使用虚拟应用路径(~)
  6. Linux 主机规划与磁盘分区
  7. DIY激光雕刻机-结构设计
  8. 玩转3D全息图像!AI即刻生成
  9. 计算机windows7升级,告诉你win7如何升级为旗舰版
  10. 快速提升网站排名的七种方法
  11. UOS第三方软件没有通过系统安全验证
  12. VLookup函数详细教程
  13. ARCGIS地图导出问题
  14. HDU2159(多重背包)
  15. org.hibernate.UnknownEntityTypeException: Unable to locate persister: com.mm.constract.domain.Contra
  16. 《More Effective C++:35个改善编程与设计的有效方法》(中文版)
  17. 虚拟机里的linux磁盘空间扩容
  18. SVN客户端和服务端的连接
  19. openwrt网络管理工具网络管理工具:net-tools VS iproute2
  20. 固定资产系统管理方案,完善固定资产管理的方案

热门文章

  1. 用电器开关应该接在火线上还是零线上
  2. 下一代网络NGN复习
  3. 最牛逼的技术能力,是技术领导力
  4. 进出口业务财务一体化外贸流程管理解决方案
  5. 三套简单的迷宫地图生成方案
  6. ORACLE常用工具介绍
  7. 特殊字符存入mysql_数据库中特殊字符的存取
  8. html网页表格线条设置,css怎么设置表格边框?
  9. 时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
  10. Resize的使用————Transforms