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

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?

like

dislike

love

funny

angry

sad

wow