tsconfig.json 配置清单

tsconfig.json 配置清单

基础结构

{"compilerOptions": {// 编译选项},"include": [// 指定需要编译的文件或目录],"exclude": [// 指定不需要编译的文件或目录],"extends": "./base-tsconfig.json","files": [// 需要编译的具体文件],"references": [// 用于 TypeScript 项目引用]
}

compilerOptions 详细配置

按类别整理,每个配置项都附带解释和可能的值。


1. ECMAScript 版本、模块系统

配置项说明可能的值
target目标 ECMAScript 版本ES3, ES5, ES6, ES2015, ES2016, ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ESNext
module目标模块系统CommonJS, AMD, UMD, System, ES6, ES2015, ES2020, ESNext
lib需要包含的库["ES6", "DOM", "ESNext", "ES2020", "ES2019"]
moduleResolution模块解析策略Classic, Node, Bundler
moduleDetection何时启用模块支持auto, legacy, force
rootDirs指定多个根目录["src", "shared"]
allowJs允许编译 .js 文件true, false
checkJs启用 JS 文件类型检查true, false
resolveJsonModule允许导入 JSON 文件true, false
esModuleInterop兼容 ES 模块默认导入true, false
preserveSymlinks不解析软链接true, false

2. 输出控制

配置项说明可能的值
outDir指定输出目录"./dist"
outFile输出为单个 .js 文件"./bundle.js"
rootDir指定源代码根目录"./src"
declaration生成 .d.ts 声明文件true, false
declarationMap生成 .d.ts.map 映射文件true, false
declarationDir.d.ts 输出目录"./types"
sourceMap生成 .map 文件true, false
inlineSourceMap内联 sourceMaptrue, false
removeComments移除注释true, false
emitBOM输出带有 BOM 头的文件true, false

3. 严格模式

配置项说明可能的值
strict开启所有严格模式true, false
noImplicitAny禁止隐式 any 类型true, false
strictNullChecks启用严格的空值检查true, false
strictFunctionTypes启用函数参数严格检查true, false
strictBindCallApply启用 bindcallapply 检查true, false
strictPropertyInitialization要求类属性初始化true, false
useUnknownInCatchVariablescatch 语句变量默认 unknowntrue, false

4. 代码检查

配置项说明可能的值
noUnusedLocals禁止未使用的局部变量true, false
noUnusedParameters禁止未使用的函数参数true, false
noImplicitReturns要求函数必须有返回值true, false
noFallthroughCasesInSwitch禁止 switch 语句 fallthroughtrue, false
allowUnreachableCode允许无法访问的代码true, false

5. ES 特性支持

配置项说明可能的值
experimentalDecorators启用实验性的装饰器true, false
emitDecoratorMetadata生成装饰器的元数据true, false
downlevelIteration向低版本 ES 兼容迭代器true, false

6. 其他

配置项说明
baseUrl模块解析的基准路径
paths配置模块别名
types指定要包含的类型定义
allowSyntheticDefaultImports允许默认导入非 ES6 模块
forceConsistentCasingInFileNames强制文件名大小写一致

7. includeexcludefiles

{"include": ["src/**/*"],"exclude": ["node_modules", "dist"],"files": ["index.ts", "types.d.ts"]
}

8. extends

{"extends": "./base-tsconfig.json"
}

9. references

{"references": [{ "path": "./packages/core" },{ "path": "./packages/utils" }]
}

10. 示例

{"compilerOptions": {"target": "ES2020","module": "CommonJS","strict": true,"outDir": "./dist","rootDir": "./src","sourceMap": true,"resolveJsonModule": true,"allowJs": true,"incremental": true},"include": ["src/**/*"],"exclude": ["node_modules", "dist"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot可以同时处理多少个请求

源码 ServerProperties Tomcat 配置 参数解析 必须要先建立连接,再用线程处理。 比如max-connection最大连接数,accept-count相当于队列容量。总连接数二者和 min-spare-treads 核心线程数默认10,max-threads最大线程数默认200。 正常…

Spring 三级缓存 vs 二级缓存:深度解析循环依赖的终极解决方案

目录 一. 循环依赖的本质矛盾 1. 什么是循环依赖? 2. 矛盾的核心 二. 三级缓存架构解析 三级缓存工作流程图​编辑 三、为什么必须三级缓存? 1. 二级缓存的致命缺陷 2. 三级缓存的精妙设计 四、场景推演:三级缓存如何解决代理问题 …

视频流畅播放相关因素

视频播放的流畅度是一个综合性问题,涉及从视频文件本身到硬件性能、网络环境、软件优化等多个环节。以下是影响流畅度的关键因素及优化建议: 一、视频文件本身 1. 分辨率与帧率 1.问题:高分辨率(如4K)或高帧率&#…

金融项目实战

测试流程 测试流程 功能测试流程 功能测试流程 需求评审制定测试计划编写测试用例和评审用例执行缺陷管理测试报告 接口测试流程 接口测试流程 需求评审制定测试计划分析api文档编写测试用例搭建测试环境编写脚本执行脚本缺陷管理测试报告 测试步骤 测试步骤 需求评审 需求评…

LeetCode 25 - K 个一组翻转链表

LeetCode 25 - K 个一组翻转链表 这道题是一个典型的链表操作题,考察我们对链表的精确操作,包括反转链表、分组处理、递归和迭代的结合应用等。还可以通过变体问题延伸到优先队列操作、归并、分块等,这使得它成为面试中的高频考题之一。 题目…

Leetcode 54: 螺旋矩阵

Leetcode 54: 螺旋矩阵 是一道经典的矩阵遍历模拟题目,要求我们以螺旋顺序遍历一个二维数组。这个问题在面试中非常经典,考察模拟、数组操作以及逻辑清晰度。掌握本题的高效解法可以迅速给面试官留下好印象。 适合面试的解法:边界法&#xff…

abseil-cpp:环境搭建

参考: https://abseil.io/docs/cpp/quickstart-cmake abseil-cpp.git/dd4c89b abseil-cpp.git/20240722.1 1. clone代码仓库、编译 git clone https://github.com/abseil/abseil-cpp.git /app/abseil-cpp/ #/app/abseil-cpp/.git/config git checkout 20240722.1git rev-pa…

Storm实时流式计算系统(全解)——下

storm编程案例-网站访问来源实时统计-需求 storm编程-网站访问来源实时统计-代码实现 根据以上条件可以只写一个类,我们只需要写2个方法和一个main(),一个读取/发射(spout)。 一个拿到数据统计后发到redis…

什么是SYN洪范攻击?

文章目录 一、什么是SYN洪范攻击?二、SYN泛洪攻击原理2.1 TCP 三次握手过程2.2 SYN攻击过程 三、防御措施 一、什么是SYN洪范攻击? SYN洪泛攻击(SYN Flood)发生在OSI第四层,是一种基于‌TCP协议三次握手漏洞‌的DoS&a…

【嵌入式】MQTT

MQTT 文章目录 MQTT安装简介MQTT客户端代码 安装 安装Paho MQTT C库: sudo apt-get install libpaho-mqtt3-dev头文件包含: #include "MQTTClient.h"编译选项: gcc -o $ $^ -lpaho-mqtt3c简介 MQTT协议全称是(Message Queuing…

ubuntu离线安装nvidia-container-runtime

参考文章 ubuntu系统docker20.4版本安装nvidia-container-runtime3.11.0-1版本(离线安装nvidia-docker) - jokerMM - 博客园 https://zhuanlan.zhihu.com/p/15194336245 一、软件地址 Index of /nvidia-docker/libnvidia-container/stable/ 从上述地地址——进入对应系统—…

用Python+Flask打造可视化武侠人物关系图生成器:从零到一的实战全记录

用PythonFlask打造可视化武侠人物关系图生成器:从零到一的实战全记录 一、缘起:一个程序小白的奇妙探索之旅 作为一个接触Python仅13天的编程萌新,我曾以为开发一个完整的应用是遥不可及的事情。但在DeepSeek的帮助下,我竟用短短…

RPA 职业前景:个人职场发展的 “新机遇”

1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…

Full GC 排查

在 Java 中,Full GC(完全垃圾回收)会对整个堆(包括年轻代和老年代,甚至可能包括永久代/元空间)进行垃圾回收,通常会导致较长的停顿(STW,Stop-The-World)。如果…

go语言中字符串嵌套

在Go语言中,字符串嵌套通常是指在字符串中包含另一个字符串。可以通过以下几种方式实现: 1. 使用双引号和转义字符 如果需要在字符串中嵌套双引号,可以使用转义字符 \ 来表示内部的双引号。例如: s : "He said, \"He…

Docker 学习(二)——基于Registry、Harbor搭建私有仓库

Docker仓库是集中存储和管理Docker镜像的平台,支持镜像的上传、下载、版本管理等功能。 一、Docker仓库分类 1.公有仓库 Docker Hub:官方默认公共仓库,提供超过10万镜像,支持用户上传和管理镜像。 第三方平台:如阿里…

js的简单介绍

一.javascript(是什么) 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 作用 网页特效(监听客户的一些行为让网页做出对应的反馈)表单验证(针对表格数据的合法性进行判断)数据交互(获取后台的数据&#xf…

k8s架构及服务详解

目录 1.1.容器是什么1.2.Namespace1.3.rootfs5.1.Service介绍5.1.1.Serice简介 5.1.1.1什么是Service5.1.1.2.Service的创建5.1.1.3.检测服务5.1.1.4.在运行的容器中远程执行命令 5.2.连接集群外部的服务 5.2.1.介绍服务endpoint5.2.2.手动配置服务的endpoint5.2.3.为外部服务…

01. HarmonyOS应用开发实践与技术解析

文章目录 前言项目概述HarmonyOS应用架构项目结构Ability生命周期 ArkTS语言特性装饰器状态管理 UI组件与布局基础组件响应式布局样式与主题 页面路由与参数传递页面跳转参数接收 数据绑定与循环渲染数据接口定义循环渲染 条件渲染组件生命周期最佳实践与性能优化组件复用响应式…

【虚拟机 IP 配置深度剖析】

虚拟机 IP 配置深度剖析 在虚拟机的使用过程中,IP 配置犹如搭建房屋的基石,是确保虚拟机与外部网络顺畅通信、与其他设备高效交互的关键所在。本文将以 CentOS 虚拟机为例,深入解读 IP 配置的奥秘。 一、认识网络模式 • NAT 模式&#xf…