18. TypeScript的配置 tsconfig.json

news/2024/5/2 21:25:22

1.为什么需要tsconfig.json

tsconfig.json文件是TypeScript项目的重要组成部分,它定义了项目的根文件和编译器选项。通过这个文件,我们可以控制TypeScript编译器的行为,以满足我们的需求。

2. tsconfig.json文件的基本结构

tsconfig.json是一个JSON文件,tsconfig.json`文件通常位于项目的根目录下,它的文件名是固定的,不能更改。

3. tsconfig.json的主要配置参数

3.1 compilerOptions

compilerOptions可以被用来设置许多编译选项,以下是一些主要的选项:

  • target: 这个选项可以用来设置ECMAScript目标版本,比如"ES5"、"ES6"等。例如:
{"compilerOptions": {"target": "es5" // 编译后的代码将符合ES5标准}
}
  • module: 这个选项可以用来指定生成哪个模块系统代码,比如"CommonJS"、“UMD”、“ES6”、“System”、“AMD"或"ES2015”。例如:
{"compilerOptions": {"module": "commonjs" // 编译后的代码将使用CommonJS模块系统}
}
  • lib: 这个选项用来指定要包含在编译中的库文件,比如"dom"、“es5”、“es6”、"es2015.promise"等。例如:
{"compilerOptions": {"lib": ["dom", "es6"] // 编译过程中将包含"dom"和"es6"库文件}
}
  • outDiroutFile: outDir选项用来指定输出目录,outFile选项用来指定输出文件。例如:
{"compilerOptions": {"outDir": "./dist", // 编译后的文件将被输出到"./dist"目录"outFile": "./dist/app.js" // 所有输出文件将被合并为一个文件"./dist/app.js"}
}
  • rootDirbaseUrl: rootDir选项用来指定输入文件的根目录,baseUrl选项用来指定非相对模块名的基准目录。例如:
{"compilerOptions": {"rootDir": "./src", // 指定"./src"为源文件的根目录"baseUrl": "./src" // 指定"./src"为非相对模块名的基准目录}
}
  • strict: 这个选项可以启用所有严格类型检查选项。例如:
{"compilerOptions": {"strict": true // 启用所有严格类型检查选项}
}
  • esModuleInterop: 这个选项可以启用ES模块和CommonJS模块之间的互操作性。例如:
{"compilerOptions": {"esModuleInterop": true // 启用ES模块和CommonJS模块之间的互操作性}
}
  • experimentalDecorators: 这个选项可以启用实验性的装饰器支持。例如:
{"compilerOptions": {"experimentalDecorators": true // 启用实验性的装饰器支持}
}
  • allowJscheckJs: allowJs选项可以允许编译JavaScript文件,checkJs选项可以报告JavaScript文件中的错误。例如:
{"compilerOptions": {"allowJs": true, // 允许编译JavaScript文件"checkJs": true // 报告JavaScript文件中的错误}
}

3.2 include 和 exclude

includeexclude选项可以用来指定编译的文件或目录,以及不编译的文件或目录。例如:

{"include": ["src/**/*"], // 只编译"src"目录下的文件"exclude": ["node_modules"] // 不编译"node_modules"目录下的文件
}

以上就是tsconfig.json文件的主要配置参数的详细介绍和代码示例,希望对你有所帮助!

好的,接下来我们继续探讨tsconfig.json的其他配置参数。

3.3 extends

extends选项可以用来继承其他的tsconfig.json文件。这是一种非常有用的功能,可以帮助我们避免在多个tsconfig.json文件中重复相同的配置。例如:

{"extends": "./base-config.json", // 继承"./base-config.json"文件中的配置"compilerOptions": {// 这里可以覆盖继承的配置}
}

3.4 files 和 references

files选项可以用来在项目中包含的文件列表,references选项可以用来设置项目引用。例如:

{"files": ["core.ts", // 包含"core.ts"文件"sys.ts" // 包含"sys.ts"文件],"references": [{ "path": "./src" } // 设置对"./src"项目的引用]
}

4. 其它

我们可以使用includeexclude选项来控制哪些文件被编译,使用compilerOptions选项来设置编译选项,使用extends选项来继承其他的配置文件。
tsconfig.json文件是TypeScript项目的重要组成部分,它可以帮助我们更好地管理和组织我们的项目。通过合理地配置tsconfig.json`文件,我们可以提高我们的开发效率,减少错误,提高代码的质量。


http://www.mrgr.cn/p/87484633

相关文章

代码安全有门道:研发团队的数据防护手册

在快速发展的科技行业,研发团队掌握着企业的心脏——代码。源代码不仅承载着创新思想,也代表了无数的研发投入和商业机会。然而,2018年GitLab的一次安全漏洞导致数千个私有代码仓库被删除,这起事件警示我们,没有严格的…

Java面试:MySQL面试题汇总

1.说一下 MySQL 执行一条查询语句的内部执行过程? 答:MySQL 执行一条查询的流程如下: 客户端先通过连接器连接到 MySQL 服务器;连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前…

数据治理

数据治理对于企业来说至关重要。它可以帮助企业清晰地了解自己的数据资源、数据流和数据质量。通过有效的数据治理,企业能够更好地管理和控制数据,最大化数据的价值,并在决策过程中减少错误和风险。数据治理的步骤及原则数据收集和整合数据治理的第一步是收集和整合数据。这…

ubuntu如何截图? ubuntu中截屏的三种方法

文章目录 1.ubuntu主要用途2.ubuntu如何截图?2.1 方法一:键盘按键快捷键截屏 2.2 方法二:系统自带软件2.3 方法三:第三方软件 Reference 1.ubuntu主要用途 1、桌面操作系统:Ubuntu可用作个人电脑或笔记本电脑的操作系…

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机

Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机 文章目录 Ubuntu 22.04 配置VirtualBox安装Windows 10虚拟机1.安装virtualbox2.下载Window.iso文件并载入3.问题解决3.1 Kernel driver not installed (rc-1908)3.2 VT-x is disabled in the BIOS for all CPU modes 4.安装Wi…

简述Linux磁盘IO

1、什么是磁盘在讲解磁盘IO前,先简单说下什么是磁盘。磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘。 1.1 机械磁盘第一类,机械磁盘,也称为硬盘驱动器(Hard Disk Driver),通常缩写为 HDD。机械磁盘主要由盘片和读写磁头组…

互连芯片浪潮席卷AI服务器:突破瓶颈,再创辉煌

改变AI服务器:互连芯片技术创新和突破 AI服务器崛起,引领未来创新根据TrendForce数据,AI服务器出货量达130,000台,占服务器总出货量的1%。主要制造商推出生成式AI产品,推动订单激增。ChatGPT等应用的需求持续增长&…

【MySQL】20. 使用C语言链接

mysql connect mysql的基础,我们之前已经学过,后面我们只关心使用 要使用C语言连接mysql,需要使用mysql官网提供的库,大家可以去官网下载 我们使用C接口库来进行连接 要正确使用,我们需要做一些准备工作: …

【springCloud】版本学习

Spring Cloud介绍 官网地址:https://spring.io/projects/spring-cloud Spring Cloud 是一个基于 Spring Boot 的微服务架构解决方案,它提供了一系列工具和模式来帮助开发者构建分布式系统。Spring Cloud 的组件和模式包括配置管理、服务发现、断路器、…

P8968

太牛了。太 nb 了。 不会博弈,不会推导,盲猜全部是同种电荷,此时神明的决策固定且易于刻画,对着样例模拟一下发现对了,写一发过了 easy ver,于是不管正确性直接来想 hard ver。 考虑向上跳的过程大致操作为 \(x\gets x+\min(x,a_i)\),直觉上不存在好的维护方法。 注意到…

ELK日志收集和备份填坑实战 (滞后8个小时等时区问题)

ES的备份:ES快照备份 根据时间,每天零点在Linux机器crontab来调用api接口实现快照备份,通过快照备份,可以定准恢复到某一天的日志。 现象:(坑:但是恢复某一天日志,发现会少8小时的日…

初学python记录:力扣2007. 从双倍数组中还原原数组

题目: 一个整数数组 original 可以转变成一个 双倍 数组 changed ,转变方式为将 original 中每个元素 值乘以 2 加入数组中,然后将所有元素 随机打乱 。 给你一个数组 changed ,如果 change 是 双倍 数组,那么请你返…

shell系统函数和流程控制

系统函数: 1、简单示例:点击查看代码 #!/bin/bash filename="$1"_log_$(datename +%S) echo $filenamebasename:基本语法: basename [string/pathname] [suffix] (功能描述:basename命令会删掉所有的前缀包括最后一个(/)字符,然后将左右字符显示出来。 basename…

RocketMQ并发消息消费重试DEMO

无序消息的重试只针对集群消费模式生效;广播消费模式不提供失败重试特性 Producer 发了100个对象消息 public class AddProducer {public static void main(String[] args) throws Exception {DefaultMQProducer producer new DefaultMQProducer("a-group&q…

春秋云境:CVE-2022-32991[漏洞复现]

从CVE官网查询该漏洞相关信息 该漏洞是由于welcome.php中的eid参数包含了SQL注入漏洞 则我们的目标就在于寻找welcome.php地址以及相关的可注入eid参数 开启靶机 先在页面正常注册、登录一个账号。密码随便填 进入了home目录,这里有三个话题可以选择开启 随便选…

模拟电路学习笔记——晶体管电流放大作用

基本共射放大电路△u1为输入电压信号,接入基极——发射极回路,称为输入回路;放大后的信号在集电极——发射极回路,称为输出回路;因发射极是两个回路的公共端,故称该电路为共射放大电路晶体管工作在放大状态的外部条件:发射结正向偏置,集电结反向偏置输入回路中基极电源…

MATLAB偏最小二乘回归(PLSR)和主成分回归(PCR)分析光谱数据

全文链接:http://tecdat.cn/?p=2655 最近我们被客户要求撰写关于偏最小二乘回归(PLSR)和主成分回归(PCR)的研究报告,包括一些图形和统计输出。 此示例显示如何在matlab中应用偏最小二乘回归(PLSR)和主成分回归(PCR),并讨论这两种方法的有效性 当存在大量预测变量时…

UE5 C++ 射线检测

一.声明四个变量 FVector StartLocation;FVector ForwardVector;FVector EndLocation;FHitResult HitResult;二.起点从摄像机,重点为摄像机前9999m。射线检测 使用LineTraceSingleByChannel 射线直线通道检测,所以 void AMyCharacter::Tick(float Delt…

matlab使用经验模式分解emd 对信号进行去噪

原文链接 : http://tecdat.cn/?p=2567 原文出处:拓端数据部落公众号对于这个例子,考虑由具有明显频率变化的正弦波组成的非平稳连续信号。手提钻的振动或烟花声是非平稳连续信号的例子。 以采样频率加载非平稳信号数据fs,并可视化混合正弦信号。 htmlload(sinusoidalSigna…

Spring Boot 学习(3)——Spring Initializr 创建项目问题解决

产生问题的原因,各种的版本都较老,所以导致出现问题。目前暂未打到合适的教程,按老教程学起来先。 小白瞎学,大神勿喷! 再次强调环境:maven 3.3.9、jdk 1.8、idea 2017、Spring 4.3.13、Spring Boot 1.5.…