首页IT科技tsconfig-paths(tsconfig.json详细配置)

tsconfig-paths(tsconfig.json详细配置)

时间2025-06-15 03:57:12分类IT科技浏览4590
导读://自用版-添加其他看下面 { /* 根选项 */...

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

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 项目很重要                  。

类型获取

enable:提供在 JavaScript 项目中禁用类型获取的配置             ,默认:false                。

include:使用 include 来指定应从绝对类型中使用哪些类型。

exclude:提供用于禁用 JavaScript 项目中某个模块的类型获取的配置

disableFilenameBasedTypeAcquisition:是否禁用基于文件名的类型获取   ,TypeScript 的类型获取可以根据项目中的文件名推断应该添加哪些类型                  ,默认:false               。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
机器学习算法(深度学习之bottleneck layer) 提升网站收录的8种方式(让你的网站排名更上一层楼)