{ "compilerOptions": { /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ // TS编译器在第一次编译之后会生成一个存储编译信息的文件,第二次编译会在第一次的基础上进行增量编译,可以提高编译的速度 // "incremental": true, // 启用允许TypeScript项目与项目引用一起使用的约束 // "composite": true, // 增量编译文件的存储位置 // "tsBuildInfoFile": "./.tsbuildinfo", // 在引用组合项目时,禁用首选源文件而不是声明文件。 // "disableSourceOfProjectReferenceRedirect": true, // 编辑时从多项目引用检查中选择一个项目。 // "disableSolutionSearching": true, // 减少TypeScript自动加载的项目数。 // "disableReferencedProjectLoad": true, /* Language and Environment */ "target": "es2016", // TS需要引用的库,即声明文件,es5 默认引用dom、es5、scripthost,如需要使用es的高级版本特性, //通常都需要配置,如es8的数组新特性需要引入"ES2019.Array", // "lib": [], // 指定生成的JSX代码。 "jsx": "preserve", // 启用对TC39第2阶段草稿装饰器的实验支持。 // "experimentalDecorators": true, // 为源文件中的修饰声明发出设计类型元数据。 // "emitDecoratorMetadata": true, // 指定针对React JSX emit时使用的JSX工厂函数,例如“React”。createElement”或“h”。 // "jsxFactory": "", // 指定针对React JSX emit(例如“React”)时用于片段的JSX片段引用。“片段”或“片段”。 // "jsxFragmentFactory": "", // 指定使用“JSX:react JSX*”时用于导入JSX工厂函数的模块说明符。 // "jsxImportSource": "", // 指定为“createElement”调用的对象。这仅适用于针对“react”JSX emit的情况。 // "reactNamespace": "", // 禁用包含任何库文件,包括默认库。d、 ts。 // "noLib": true, // 发出符合ECMAScript标准的类字段。 // "useDefineForClassFields": true, // 控制用于检测模块格式JS文件的方法。 // "moduleDetection": "auto", /* Modules */ // 生成代码的模板标准,可选es6模式 amd umd 等 "module": "commonjs", // 指定输出文件目录(用于输出),用于控制输出目录结构 // "rootDir": "./", // 模块解析策略,ts默认用node的解析策略,即相对的方式导入 // "moduleResolution": "node", // 解析非相对模块的基地址,默认是当前目录 // "baseUrl": "./", // 路径映射,相对于baseUrl // "paths": {}, // 将多个目录放在一个虚拟目录下,用于运行时,即编译后引入文件的位置可能发生变化,这也设置可以虚拟src和out在同一个目录下,不用再去改变路径也不会报错 // "rootDirs": [], // 声明文件目录,默认时node_modules/@types // "typeRoots": [], // 加载的声明文件包 // "types": [], // 允许在模块中全局变量的方式访问umd模块 // "allowUmdGlobalAccess": true, // 解析模块时要搜索的文件名后缀列表。 // "moduleSuffixes": [], // 启用导入。json文件。 // "resolveJsonModule": true, // 不允许“import”、“require”或“reference”扩展TypeScript应添加到项目中的文件数。 // "noResolve": true, /* JavaScript Support */ // 允许编译器编译JS,JSX文件 // "allowJs": true, // 允许在JS文件中报错,通常与allowJS一起使用 // "checkJs": true, // 指定用于检查“node\u modules”中的JavaScript文件的最大文件夹深度。仅适用于“allowJs”。 // "maxNodeModuleJsDepth": 1, /* Emit */ // 生成声明文件,开启后会自动生成声明文件 // "declaration": true, // 为声明文件生成sourceMap // "declarationMap": true, // 只生成声明文件,而不会生成js文件 // "emitDeclarationOnly": true, // 生成目标文件的sourceMap文件 // "sourceMap": true, // 将多个相互依赖的文件生成一个文件,可以用在AMD模块中,即开启时应设置"module": "AMD", // "outFile": "./", // 指定输出目录 // "outDir": "./", // 删除注释 // "removeComments": true, // 不输出文件,即编译后不会生成任何js文件 // "noEmit": true, // 通过tslib引入helper函数,文件必须是模块 // "importHelpers": true, // 为仅用于类型的导入指定发射/检查行为。 // "importsNotUsedAsValues": "remove", // 为迭代发出更符合要求、但冗长且性能较差的JavaScript。 // "downlevelIteration": true, // 指定调试器查找参考源代码的根路径。 // "sourceRoot": "", // 指定调试器应该定位映射文件的位置,而不是生成的位置。 // "mapRoot": "", // 生成目标文件的inline SourceMap,inline SourceMap会包含在生成的js文件中 // "inlineSourceMap": true, // 在发出的JavaScript内的sourcemaps中包含源代码。 // "inlineSources": true, // 在输出文件的开头发出UTF-8字节顺序标记(BOM)。 // "emitBOM": true, // 设置用于发射文件的换行符。 // "newLine": "crlf", // 禁用在JSDoc注释中包含“@internal”的声明。 // "stripInternal": true, // Disable generating custom helper functions like '__extends' in compiled output. // "noEmitHelpers": true, // 如果报告了任何类型检查错误,则禁用发送文件。 // "noEmitOnError": true, // 禁用删除生成代码中的“const enum”声明。 // "preserveConstEnums": true, // 指定生成声明文件存放目录 // "declarationDir": "./", // 在JavaScript输出中保留未使用的导入值,否则会被删除。 // "preserveValueImports": true, /* Interop Constraints */ // "isolatedModules": true, // "allowSyntheticDefaultImports": true, "esModuleInterop": true, // "preserveSymlinks": true, "forceConsistentCasingInFileNames": true, /* Type Checking */ "strict": true, // 确保每个文件都可以安全传输,而不依赖于其他导入。 // "noImplicitAny": true, // 不允许把null、undefined赋值给其他类型的变量 // "strictNullChecks": true, // 不允许函数参数双向协变 // "strictFunctionTypes": true, // 严格的bind/call/apply检查 // "strictBindCallApply": true, // 类的实例属性必须初始化 // "strictPropertyInitialization": true, // 不允许this有隐式的any类型 // "noImplicitThis": true, // 默认catch子句变量为“unknown”而不是“any”。 // "useUnknownInCatchVariables": true, // 在代码中注入'use strict // "alwaysStrict": true, // 检查只声明、未使用的局部变量(只提示不报错) // "noUnusedLocals": true, // 检查未使用的函数参数(只提示不报错) // "noUnusedParameters": true, // 将可选属性类型解释为编写的,而不是添加“undefined”。 // "exactOptionalPropertyTypes": true, // 每个分支都会有返回值 // "noImplicitReturns": true, // 防止switch语句贯穿(即如果没有break语句后面不会执行) // "noFallthroughCasesInSwitch": true, // 使用索引访问时,将“undefined”添加到类型。 // "noUncheckedIndexedAccess": true, // 对使用索引类型声明的键强制使用索引访问器。 // "noPropertyAccessFromIndexSignature": true, // 禁用未使用标签的错误报告。 // "allowUnusedLabels": true, // 禁用无法访问代码的错误报告 // "allowUnreachableCode": true, /* Completeness */ // 跳过类型检查。d、 TypeScript中包含的ts文件。 // "skipDefaultLibCheck": true, // 跳过类型检查全部。d、 ts文件。 "skipLibCheck": true } }