- TypeScript 基础
- TypeScript - 首页
- TypeScript - 路线图
- TypeScript - 概述
- TypeScript - 环境搭建
- TypeScript - 基本语法
- TypeScript vs. JavaScript
- TypeScript - 特性
- TypeScript - 变量
- TypeScript - let & const
- TypeScript - 运算符
- TypeScript 基本类型
- TypeScript - 类型
- TypeScript - 类型注解
- TypeScript - 类型推断
- TypeScript - 数字
- TypeScript - 字符串
- TypeScript - 布尔值
- TypeScript - 数组
- TypeScript - 元组
- TypeScript - 枚举
- TypeScript - any
- TypeScript - never
- TypeScript - 联合类型
- TypeScript - 字面量类型
- TypeScript - Symbol
- TypeScript - null vs. undefined
- TypeScript - 类型别名
- TypeScript 控制流
- TypeScript - 决策语句
- TypeScript - if 语句
- TypeScript - if else 语句
- TypeScript - 嵌套 if 语句
- TypeScript - switch 语句
- TypeScript - 循环
- TypeScript - for 循环
- TypeScript - while 循环
- TypeScript - do while 循环
- TypeScript 函数
- TypeScript - 函数
- TypeScript - 函数类型
- TypeScript - 可选参数
- TypeScript - 默认参数
- TypeScript - 匿名函数
- TypeScript - 函数构造器
- TypeScript - rest 参数
- TypeScript - 参数解构
- TypeScript - 箭头函数
- TypeScript 接口
- TypeScript - 接口
- TypeScript - 接口扩展
- TypeScript 类和对象
- TypeScript - 类
- TypeScript - 对象
- TypeScript - 访问修饰符
- TypeScript - 只读属性
- TypeScript - 继承
- TypeScript - 静态方法和属性
- TypeScript - 抽象类
- TypeScript - 存取器
- TypeScript - 鸭子类型
- TypeScript 高级类型
- TypeScript - 交叉类型
- TypeScript - 类型守卫
- TypeScript - 类型断言
- TypeScript 类型操作
- TypeScript - 从类型创建类型
- TypeScript - keyof 类型操作符
- TypeScript - typeof 类型操作符
- TypeScript - 索引访问类型
- TypeScript - 条件类型
- TypeScript - 映射类型
- TypeScript - 模板字面量类型
- TypeScript 泛型
- TypeScript - 泛型
- TypeScript - 泛型约束
- TypeScript - 泛型接口
- TypeScript - 泛型类
- TypeScript 其他
- TypeScript - 三斜杠指令
- TypeScript - 命名空间
- TypeScript - 模块
- TypeScript - 环境声明
- TypeScript - 装饰器
- TypeScript - 类型兼容性
- TypeScript - Date 对象
- TypeScript - 迭代器和生成器
- TypeScript - Mixin
- TypeScript - 实用程序类型
- TypeScript - 装箱和拆箱
- TypeScript - tsconfig.json 文件
- 从 JavaScript 到 TypeScript
- TypeScript 有用资源
- TypeScript - 快速指南
- TypeScript - 有用资源
- TypeScript - 讨论
TypeScript - tsconfig.json 文件
TypeScript 的 `tsconfig.json` 文件是一个配置文件,用于指定编译器选项。这些编译器选项用于编译 TypeScript 代码并将其转换为 JavaScript 代码。但是,它也允许开发人员使用 JSON 格式指定项目中使用的更多配置。
`tsconfig.json` 文件始终位于项目的根目录中。此文件包含 JSON 格式的数据。
tsconfig.json 文件的基本结构
`tsconfig.json` 文件主要包含以下 5 个属性,所有属性都是可选的
- compileOnSave
- compilerOptions
- files
- include
- exclude
如果您在 `tsconfig.json` 文件中不使用任何这些属性,则编译器将使用默认设置。
以下是 `tsconfig.json` 文件的基本结构。
{ "compileOnSave": true, "compilerOptions": { "target": "es6", "lib": [ "es6", "dom" ], "module": "commonjs" }, "files": [ "app.ts", "base.ts" ], "include": [ "src/**/*" ], "exclude": [ "node_modules", "src/**/*.calc.ts" ] }
在上述文件中,您可以根据需要添加更多编译器选项或其他属性列表中的元素。
让我们逐一了解每个属性。
compileOnSave 属性
`compileOnSave` 属性用于指定是否要在保存代码时立即编译项目代码。`compileOnSave` 属性的默认值为 `false`。
如果为此属性使用 `false` 值,则需要手动编译代码。
以下是如何在 `tsconfig.json` 文件中使用 `compileOnSave` 属性。
{ "compileOnSave": boolean_value }
compilerOptions 属性
`compilerOptions` 是 `tsconfig.json` 文件中广泛使用的属性。它用于指定 TypeScript 编译器编译代码的设置。例如,如果您想在编译 TypeScript 代码时使用特定版本的 JavaScript 或模块,您可以修改 `compilerOptions` 属性。
以下是一些在 `tsconfig.json` 文件中使用的常用编译器选项。
选项 | 描述 |
---|---|
target | 指定输出 JavaScript 文件的目标 ECMAScript 版本。“es6”目标为 ECMAScript 2015。 |
experimentalDecorators | 启用对 ES 装饰器的实验性支持,ES 装饰器是 ECMAScript 标准的第 2 阶段提案。 |
lib | 指定要在编译中包含的库文件列表。例如,包含“es6”和“dom”以获取相关 API。 |
module | 指定项目的模块系统。“commonjs”通常用于 Node.js 项目。 |
esModuleInterop | 启用与不符合 ES 模块的导入的兼容性,允许从没有默认导出的模块导入默认值。 |
resolveJsonModule | 允许将 .json 文件作为模块导入到项目中。 |
strict | 启用所有严格类型检查选项,提高 TypeScript 中类型检查的严格性和准确性。 |
listFiles | 设置后,编译器将打印出编译中包含的文件列表。 |
outDir | 将输出结构重定向到指定的目录。对于将编译后的文件放在特定目录中很有用。 |
outFile | 连接并输出到单个文件。如果指定了 outFile,则忽略 outDir。 |
rootDir | 指定输入文件的根目录。对于使用 outDir 控制输出目录结构很有用。 |
sourceRoot | 指定编译器应该查找 TypeScript 文件的位置,而不是默认位置。 |
allowJs | 允许与 TypeScript 文件一起编译 JavaScript 文件。在混合使用 JS 和 TS 的项目中很有用。 |
strictNullChecks | 启用后,编译器将对您的代码执行严格的 null 检查,这有助于防止 null 或 undefined 访问错误。 |
以下是在 `tsconfig.json` 文件中使用 `compilerOptions` 的常用方法。
{ "compilerOptions": { "target": "es6", "lib": [ "es6", "dom" ], "module": "commonjs" } }
files 属性
`files` 属性将文件列表作为值,以包含在编译过程中。如果文件位于根目录中,您可以直接添加文件名,或者为要包含在编译过程中的每个文件添加相对或绝对文件路径。
在这里,我们展示了如何在 `tsconfig.json` 文件中使用 `files` 属性。
"files": [ "app.ts", "base.ts" ]
include 属性
`include` 属性允许开发人员使用通配符查询添加要编译的 TypeScript 文件列表。
如果要将所有文件添加到编译中,可以使用以下通配符查询。
"include": [ "src/**/*" ]
上述配置添加了 `src` 目录中的所有文件。
exclude 属性
`exclude` 属性与 `include` 属性相反。它允许开发人员使用通配符查询从编译过程中删除特定文件。
"exclude": [ "node_modules", "src/**/*.calc.ts" ]
上述配置从编译过程中删除了 node 模块和 `calc.ts` 文件。
常见场景和配置
在这里,我们解释了开发人员需要更改 `tsconfig.json` 文件的常见场景。
定位不同的 ECMAScript 版本
如果要在编译 TypeScript 代码时定位不同的 ECMAScript 版本,可以使用以下配置。在这里,我们更改了 `compilerOptions` 对象的 `target` 和 `module` 属性的值。
{ "compilerOptions": { "target": "es6", "module": "es2015" } }
包含 Node.js 类型定义
当您使用 Node.js 时,您可能需要添加类型定义,以下是如何添加它。
{ "compilerOptions": { "module": "commonjs", "target": "es2018", "lib": ["es2018", "dom"] }, "include": [ "src/**/*" ] }
排除测试文件
有时,开发人员需要从编译过程中删除测试文件。以下是如何使用 `exclude` 属性删除特定测试文件或目录。
{ "exclude": ["**/*.spec.ts", "**/*.test.ts"] }
对于 TypeScript 开发人员来说,了解如何管理 `tsconfig.json` 文件始终很重要。您可以编辑此文件以更改编译代码时的模块,添加和删除编译过程中的文件,以及在保存文件后进行自动编译。