配置项 | 说明 |
---|---|
extends |
如果
|
compileOnSave(保存时编译) | 可以让IDE在保存文件的时候根据tsconfig.json重新生成文件,该特性需要Visual Studio 2015 、TypeScript1.8.4 以上并且安装atom-typescript 插件 |
compilerOptions(编译选项) | 详情见:compilerOptions编译选项 |
files | 用来指定要编译的文件 属性指定编译的文件列表,如果其中有一个文件不存在,就会报错。 它是一个数组,排在前面的文件先编译。
该属性必须逐一列出文件,不支持文件匹配。如果文件较多,建议使用 |
include | 用来指定要编译要包含的路径列表,和 属性指定所要编译的文件列表,既支持逐一列出文件,也支持通配符。文件位置相对于当前配置文件而定。
如果不指定文件后缀名,默认包括 |
exclude |
|
references | 一个对象的数组,指明要引用的工程。适合一个大项目由许多小项目构成的情况,用来设置需要引用的底层项目。
与此同时,引用的底层项目的 |
compilerOptions 编译选项
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
allowJs | boolean | false | 允许编译器编译JS,JSX文件 |
checkJs | boolean | false | 在.js文件中报告错误,与allowJS配合使用 |
esModuleInterop | boolean | false | 修复了一些 CommonJS 和 ES6 模块之间的兼容性问题。 如果 打开这个属性,使用
上面示例中,根据 ES6 规范, 解决方法就是改写上面的语句,改成加载默认接口。
打开 注意,打开 |
allowSyntheticDefaultImports | boolean | false | 允许从没有设置默认到处的模块中默认导入。这并不影响代码的输出,仅为了类型检查。默认值:module === "system" 或设置了 --esModuleInterop 且 module 不为 es2015 / esnext |
target | string | ES3 | 指定编译出来的 JavaScript 代码的 ECMAScript 版本,比如 它可以取以下值。
注意,如果编译的目标版本过老,比如 |
module | string | target === ES6 ? ES6 : commonjs | 指定编译产物的模块格式。它的默认值与
它可以取以下值:none、commonjs、amd、umd、system、es6/es2015、es2020、es2022、esnext、node16、nodenext。 |
moduleResolution | string | node | 模块解析策略,确定模块路径的算法,即如何查找模块。它可以取以下四种值。
它的默认值与 |
declaration | boolean | false | 设置编译时是否为每个脚本生成类型声明文件.d.ts |
declarationDir | string | “” | 设置生成的.d.ts 文件所在的目录。 |
outDir | string | 用来指定编译后文件的存放位置,如未指定,输出文件会和编译文件在同一目录 | |
rootDir | string | 用来指定编译文件的根目录,编译器会在根目录查找入口文件,如果编译器发现以rootDir 的值作为根目录查找入口文件并不会把所有文件加载进去的话会报错,但是不会停止编译 | |
baseUrl | string | tsconfig.json文件所在目录 | 用于设置解析非相对模块名称的基本目录,相对模块不会受
上面示例中,
|
paths | object | 当我们使用 TypeScript 开发项目时,通常会引用其他模块或文件。为了避免使用相对路径进行引用,我们可以使用路径配置来简化引用的过程。路径配置可以将特定的目录映射到一个短的名称上,从而在引用其他模块时可以使用这个短名称进行引用,而不用关心模块的实际目录结构
在上述配置中,我们使用 “baseUrl” 属性指定了基础目录,然后使用 “paths” 属性来配置具体的路径映射。 在该示例配置中,我们定义了两个路径映射:
这样,我们在项目中引用这些模块时,可以使用短名称进行引用,例如:import { demoUtil } from ‘@utils/demoUtil’。 | |
alwaysStrict | boolean | false | 编译后的文件是否开启严格模式。在代码中注入‘use strict’,以严格模式上解析并为每个源文件生成“use strict”语句。 |
strict | boolean | false | 是否开启严格检查 |
noEmit | boolean | false | 是否不生成编译文件,即编译后不生成任何js文件 |
noImplicitAny | boolean | false | 是否不允许隐式的any,在表达式和声明上有隐含的 any类型时报错。默认false(允许)。 |
noImplicitReturns | boolean | false | 检查函数有没有返回值,设为true后,如果函数没有返回值则会提示 |
noUnusedLocals | boolean | false | 是否检查有没有未使用的局部变量,若有未使用的局部变量则抛错 |
noUnusedParameters | boolean | false | 检若有未使用的函数参数则抛错 |
newLine | string | lf | newLine 设置换行符为CRLF (Windows)还是LF (Linux) |
strictNullChecks | boolean | false | 是否严格检查空值,检查有可能为null 的地方 |
lib | array | es5 | 在TypeScript中,我们可以使用各种JavaScript库和框架,如Node.js、DOM、Web Worker、Web Assembly等。然而,不同的JavaScript库提供了不同的全局对象和函数。编写TypeScript代码时,我们通常需要在代码中使用这些全局对象和函数。为了让编译器能够识别我们使用的是哪些全局对象和函数,我们可以使用”lib”选项来告诉编译器。 “lib”选项接受一个数组作为值,这个数组包含了我们要使用的JavaScript库的名称。TypeScript编译器将根据这个选项加载相应的定义文件(.d.ts文件),这些定义文件包含了对应JavaScript库的类型声明。通过这种方式,编译器就能够理解我们在代码中使用的全局对象和函数是哪些,以及它们的类型信息。
TypeScript 内置的类型描述文件,主要有以下一些:
|
sourceMap | boolean | false | 是否生成sourceMap 文件,这个文件里保存的是转换后代码的位置,和对应的转换前的位置。有了它,出错的时候,通过断点工具可以直接显示原始代码,而不是转换后的代码 |
composite | boolean | 打开某些设置,使得 TypeScript 项目可以进行增量构建,往往跟incremental 属性配合使用。 | |
incremental | boolean | false | 让 TypeScript 项目构建时产生文件tsbuildinfo ,从而完成增量构建 |
isolatedModules | boolean | false | 设置如果当前 TypeScript 脚本作为单个模块编译,是否会因为缺少其他脚本的类型信息而报错,主要便于非官方的编译工具(比如 Babel)正确编译单个脚本。 |
jsx | string | 设置如何处理
| |
listFiles | boolean | false | 设置编译时在终端显示,参与本次编译的文件列表。 |
typeRoots | array | 设置类型模块所在的目录,默认是
| |
types | array | 设置
| |
skipLibCheck | boolean | false | 用于控制是否跳过对声明文件(.d.ts文件)的类型检查。 当我们引用的库或模块非常庞大且复杂时,类型检查会花费很多时间。特别是某些第三方库的声明文件可能被完全忽略,这会导致编译时间过长。为了解决这个问题,我们可以使用’skipLibCheck’参数来跳过对声明文件的类型检查,从而提高编译速度 |