TypeScript配置文件tsconfig.json详细说明
TypeScript配置文件tsconfig.json详细说明

{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig.json to read more about this file */
/* 项目 */
"incremental": true, /* 启用增量编译 */
"composite": true, /* 允许TypeScript项目与项目引用一起使用的约束。*/
"tsBuildInfoFile": "./", /* 指定.tsbuildinfo增量编译文件的文件夹。 */
"disableSourceOfProjectReferenceRedirect": true, /* 在引用复合项目时禁用优先级源文件而不是声明文件 */
"disableSolutionSearching": true, /* 在编辑时,选择一个项目不进行多项目参考检查。 */
"disableReferencedProjectLoad": true, /* 减少TypeScript自动加载的项目数量。 */
/* 语言和环境 */
"target": "es5" /* 为生成出来的JavaScript设置JavaScript语言版本,并包含兼容的库声明 */,
"lib": [], /* 指定一组描述目标运行时环境的捆绑库声明文件。*/
"jsx": "preserve", /* 指定生成什么JSX代码。*/
"experimentalDecorators": true, /* 启用TC39阶段2草稿 装饰器的实验支持。(是否使用装饰器) */
"emitDecoratorMetadata": true, /* 为源文件中的装饰声明生成设计类型的元数据。 */
"jsxFactory": "", /* 指定JSX工厂函数使用React JSX,例如:“React.createElement”或“h” */
"jsxFragmentFactory": "", /* 指定JSX Fragment引用React JSX 发行的片段,例如“React.Fragment”或“Fragment”。 */
"jsxImportSource": "", /* 声明模块说明符,当使用jsx作为“react-jsx”或“react-jsxdev”时,用于导入jsx和jsxs工厂函数,它们是在TypeScript 4.1中引入的 */
"reactNamespace": "", /* 使用jsxFactory代替。当指定createElement在针对TSX文件的react时调用的对象 */
"noLib": true, /* 禁用包括任何库文件,包括默认的lib.d.ts。 */
"useDefineForClassFields": true, /* 生成符合ECMAScript标准的类字段 */
/* Modules */
"module": "commonjs" /* 指定生成什么模块代码 */,
"rootDir": "./", /* 指定源文件中的根文件夹 */
"moduleResolution": "node", /* 指定TypeScript如何从给定的模块说明符查找文件。*/
"baseUrl": "./", /* 指定解析非相对模块名的基目录*/
"paths": {}, /* 指定一组条目,将导入重新映射到其他查找位置 */
"rootDirs": [], /* 当解析模块时,允许将多个文件夹视为一个 */
"typeRoots": [], /* 指定多个文件夹,像 './node_modules/@type' */
"types": [], /* 指定要包含而不在源文件中引用的类型包名称。 */
"allowUmdGlobalAccess": true, /* 允许从模块中访问UMD全局变量。*/
"resolveJsonModule": true, /* 启用.json文件导入 */
"noResolve": true, /* 禁止' import ', ' require '或' '来扩展TypeScript应该添加到项目中的文件数量 */
/* JavaScript支持 */
"allowJs": true, /* 允许JavaScript文件成为程序的一部分。使用' checkJS '选项从这些文件中获取错误。 */
"checkJs": true, /* 在类型检查的JavaScript文件中启用错误报告。 */
"maxNodeModuleJsDepth": 1, /* 指定用于从' node modules '中检查JavaScript文件的最大文件夹深度。仅适用于' allowJs '。 */
/* 发行 */
"declaration": true, /* 从你项目中的TypeScript和JavaScript文件中生成.d.ts文件*/
"declarationMap": true, /* 为.d.ts文件创建源映射。*/
"emitDeclarationOnly": true, /* 只输出.d.ts文件而不输出JavaScript文件。*/
"sourceMap": true, /* 为生成的JavaScript文件创建源映射文件*/
"outFile": "./", /* 指定一个将所有输出捆绑到一个JavaScript文件中的文件。如果' declaration '为真,也指定一个文件,该文件将所有的.d.ts输出。 */
"outDir": "./", /* 为所有生成的文件指定一个输出文件夹。*/
"removeComments": true, /* 移除注释 */
"noEmit": true, /* 禁止编译器生成文件 */
"importHelpers": true, /* 允许每个项目从tslib导入helper函数一次,而不是每个文件包含它们。*/
"importsNotUsedAsValues": "remove", /* 为仅用于类型的导入指定生成/检查行为 */
"downlevelIteration": true, /* 为迭代生成更兼容、但冗长、性能更差的JavaScript */
"sourceRoot": "", /* 指定调试器查找参考源代码的根路径。 */
"mapRoot": "", /* 指定调试器应该定位映射文件(而不是生成的位置)的位置。*/
"inlineSourceMap": true, /* 在生成的JavaScript中包含sourcemap文件。*/
"inlineSources": true, /* 在生成的JavaScript中包含源映射的源代码。*/
"emitBOM": true, /* 在输出文件开头生成UTF-8字节顺序标记(Byte Order Mark, BOM)。*/
"newLine": "crlf", /* 设置生成文件的换行符 */
"stripInternal": true, /* 禁用在JSDoc注释中生成带有' @internal '的声明。*/
"noEmitHelpers": true, /* 在编译后的输出中禁用生成自定义助手函数,比如' extends '。 */
"noEmitOnError": true, /* 如果报告任何类型检查错误,禁用生成文件。 */
"preserveConstEnums": true, /* 在生成的代码中禁用擦除' const enum '声明。*/
"declarationDir": "./", /* 指定生成的声明文件的输出目录。 */
/* 互操作的约束 */
"isolatedModules": true /* 确保每个文件都可以在不依赖其他导入的情况下安全地编译。*/,
"allowSyntheticDefaultImports": true, /* 当一个模块没有默认导出时,允许'import x from y'。 */
"esModuleInterop": true /* 生成额外的JavaScript来简化对导入CommonJS模块的支持。这启用了' allowsyntheticdefaulultimports '的类型兼容性。 */,
"preserveSymlinks": true, /* 禁用解析符号链接到它们的真实路径。这与节点中的相同标志相关。 */
"forceConsistentCasingInFileNames": true /* 强制文件名的大小写一致*/,
/* 类型检查 */
"strict": true /* 启用所有严格的类型检查选项。 */,
"noImplicitAny": true, /* 为隐含的' any '类型的表达式和声明启用错误报告。*/
"strictNullChecks": true, /* 当类型检查时,要考虑' null '和' undefined '。 */
"strictFunctionTypes": true, /* 在赋值函数时,请检查以确保参数和返回值是子类型兼容的。 */
"strictBindCallApply": true, /* 检查' bind '、' call '和' apply '方法的参数是否与原始函数匹配。 */
"strictPropertyInitialization": true, /* 检查在构造函数中声明但没有设置的类属性。*/
"noImplicitThis": true, /* 当' this '的类型为' any '时,启用错误报告。*/
"useUnknownInCatchVariables": true, /* 类型捕获子句变量为'unknown'而不是'any'。*/
"alwaysStrict": true, /* 确保始终发出'use strict'。 */
"noUnusedLocals": true, /* 在未读取局部变量时启用错误报告。 */
"noUnusedParameters": true, /* 当未读取函数参数时引发错误 */
"exactOptionalPropertyTypes": true, /* 解释可选的属性类型,而不是添加'undefined'。 */
"noImplicitReturns": true, /* 为函数中没有显式返回(return)的代码路径启用错误报告。 */
"noFallthroughCasesInSwitch": true, /* 在switch语句中启用故障案例的错误报告。 */
"noUncheckedIndexedAccess": true, /* 在索引签名结果中包含'undefined' */
"noImplicitOverride": true, /* 确保派生类中的重写成员用重写修饰符标记。*/
"noPropertyAccessFromIndexSignature": true, /* 强制对使用索引类型声明的键使用索引访问器 */
"allowUnusedLabels": true, /* 禁用未使用标签的错误报告。 */
"allowUnreachableCode": true, /* 禁用不可访问代码的错误报告。*/
/* Completeness */
"skipDefaultLibCheck": true, /* 跳过类型检查。TypeScript中包含的.d.ts文件。*/
"skipLibCheck": true /* 跳过类型检查所有.d.ts文件 */
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
What's Your Reaction?






