tsconfig.json 常用属性配置和注释

下面是一个详细的 tsconfig.json 文件示例,其中包含了许多常用的配置选项。这个配置适用于一个使用 TypeScript 进行前端和后端开发的通用项目。

{
  "compilerOptions": {
    "target": "es6",                          // 指定 ECMAScript 目标版本,这里是 ES6
    "module": "commonjs",                     // 指定生成代码的模块系统,这里是 CommonJS,适用于 Node.js
    "lib": ["dom", "es6", "dom.iterable", "scripthost"], // 编译过程中包含的库文件
    "outDir": "./dist",                       // 编译后文件输出的目录
    "rootDir": "./src",                       // 指定输入文件的根目录,用于控制输出目录结构
    "removeComments": true,                   // 删除编译后代码中的注释
    "preserveConstEnums": true,               // 保留 const enum 声明
    "sourceMap": true,                        // 生成相应的 `.map` 文件,便于调试
    "noImplicitAny": true,                    // 在表达式和声明上有隐含的 'any' 类型时报错
    "strict": true,                           // 启用所有严格类型检查选项
    "noUnusedLocals": true,                   // 报告编译后代码中未使用的局部变量错误
    "noUnusedParameters": true,               // 报告函数中未使用的参数错误
    "noImplicitReturns": true,                // 在函数中每个分支都有返回值时报错
    "noFallthroughCasesInSwitch": true,       // 防止 switch 语句贯穿
    "esModuleInterop": true,                  // 允许导入非 ES 模块(即那些没有默认导出的模块)
    "allowSyntheticDefaultImports": true,     // 允许从没有默认导出的模块默认导入
    "moduleResolution": "node",               // 模块解析策略,Node 风格,用于解析 import 语句
    "allowJs": true,                          // 允许编译器编译 JavaScript 文件
    "checkJs": false,                         // 检查并报告 JavaScript 文件中的错误(在 allowJs 启用时使用)
    "jsx": "react",                           // 支持在 TypeScript 文件中使用 JSX,这里是针对 React 框架
    "experimentalDecorators": true,           // 启用对 ES7 装饰器的支持
    "emitDecoratorMetadata": true,            // 为装饰器提供元数据支持,这在使用 Angular 等框架时可能需要
    "skipLibCheck": true,                     // 跳过库文件的类型检查,以加快编译速度
    "forceConsistentCasingInFileNames": true  // 强制文件名大小写一致性
  },
  "include": [
    "src/**/*"                                // 指定包含的源文件目录及其所有子目录
  ],
  "exclude": [
    "node_modules",                           // 排除不需要编译的目录
    "**/*.spec.ts"                            // 排除测试文件
  ],
  "typeAcquisition": {                        // 自动获取 @types 类型声明文件
    "enable": true
  }
}

解释说明

  • 编译器选项 (compilerOptions): 这部分配置了 TypeScript 编译器如何编译代码。包括指定 ECMAScript 版本,输出目录,严格模式,模块解析方式等。
  • 包含和排除文件 (includeexclude): 这些设置定义了 TypeScript 编译器应该处理哪些文件,哪些文件应该被忽略。通常,include 用于指定源代码文件夹,而 `exclude

用于排除不需要编译的文件,如node_modules`。

  • JSX 支持 (jsx): 对于使用 React 或其他采用 JSX 语法的库的项目,需要配置此项。
  • 装饰器支持 (experimentalDecoratorsemitDecoratorMetadata): 这些选项通常在使用 Angular 或其他依赖装饰器的 TypeScript 项目中启用。

这份 tsconfig.json 配置覆盖了许多常用的 TypeScript 配置需求,适用于多种类型的 TypeScript 项目,包括前端和后端应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu系统强制用户设置复杂密码

1、安装cracklib模块 安装PAM的cracklib模块,cracklib能提供额外的密码检查能力 sudo apt-get install libpam-cracklib2、可用vim打开配置文件(或其它方式) sudo vim /etc/pam.d/common-password3、设置密码复杂度 在# here are the per…

滚珠丝杆有哪些应用场景?

在传动领域中滚珠丝杆是自动化设备和智能制造设备相结合的关键装置,在精密制造工艺、精密装配作业及现代物流系统等多元领域中,发挥着不可或缺的核心作用。其优点在于快速、高效、准确可靠和稳定。它能够在较小的转矩下产生很大的推力,所以被…

win11 安装qt5.14.2 、qtcreator、vs编译器 。用最小安装进行 c++开发qt界面

系统 :win11 一、安装vs生成工具 ,安装编译器 下载visualstudio tools 生成工具: 安装编译器 和 windows sdk: 安装debug 调试器: 二、Qt5.14.2下载 下载链接: Index of /archive/qt/5.14/5.14.2 安装qt 三、配置QT/…

【多态】有关多继承和菱形继承的多态

博主首页: 有趣的中国人 专栏首页: C进阶 其它专栏: C初阶 | 初阶数据结构 | Linux 博主会持续更新 本篇文章主要讲解 多继承和菱形继承的多态 的相关内容 文章目录 1. 回顾多态底层2. 抽象类2.1 概念2.2 接口继承和实现继承 3. 虚表所在…

文件上传漏洞(upload-labs)

目录 一、文件上传漏洞 1.什么是文件上传漏洞 常见的WebShell 2.文件上传产生漏洞的原因 二、文件上传绕过 (一)客服端绕过-JS验证 1.前端验证 upload-labs第一关 (二)绕过黑名单验证 黑名单验证 1.特殊解析后缀 upl…

Pandas 2.2 中文官方教程和指南(十一·一)

原文:pandas.pydata.org/docs/ PyArrow 功能 原文:pandas.pydata.org/docs/user_guide/pyarrow.html pandas 可以利用PyArrow来扩展功能并改善各种 API 的性能。这包括: 与 NumPy 相比,拥有更广泛的数据类型 对所有数据类型支持缺…

C# 结合JavaScript实现手写板签名并上传到服务器

应用场景 我们最近开发了一款笔迹测试功能的程序(测试版),用户在手写板上手写签名,提交后即可测试出被测试者的心理素质评价分析。类似功能的场景还比如,在银行柜台办理业务,期间可能需要您使用手写设备进…

linux 编译binutil 遇到问题

在centos6.10上编译binutil2.27时遇到问题: as.c💯31: error: ‘DEFAULT_GENERATE_ELF_STT_COMMON’ undeclared here (not in a function) 搜到解决方法是这个: 1、https://github.com/riscv-software-src/riscv-tools/issues/66 &#xf…

十七、Java网络编程(一)

1、Java网络编程的基本概念 1)网络编程的概念 Java作为一种与平台无关的语言,从一出现就与网络有关及其密切的关系,因为Java写的程序可以在网络上直接运行,使用Java,只需编写简单的代码就能实现强大的网络功能。下面将介绍几个与Java网络编程有关的概念。 2)TCP/IP协议概…

内置对象部分

一,内置对象 二,math对象 不是构造函数,不需要new来调用,而是直接使用里面的属性和方法即可 1.随机方法random 返回一个随机的小数 [0,1) 2.日起格式化 返回的月份会小一,记得加一 周一返回1&#xff…

iObit Uninstaller 安装、激活、使用教程

「软件简介」 IObit Uninstaller 一款专业的卸载工具,旨在彻底移除不需要的软件、插件以及 Windows 应用,同时提供安全、快速和轻量化的 PC 使用体验。 〖下载安装软件〗 版本:V 13.4.0 | 26.9 MB 支持系统:Windows 11/10/8.1/8/…

传媒论坛编辑部传媒论坛杂志社传媒论坛杂志2024年第7期目录

专题│场景传播研究 场景传播:一场遮盖自我与寻找自我的博弈 胡沈明; 3 基于CiteSpace的中国场景传播研究热点分析 管倩;粟银慧; 4-610《传媒论坛》投稿:cnqikantg126.com 数字世界的美与危:场景传播的失范与应对之举 王依晗;章洁…

Centos/linux根目录扩容、分区、挂载。LVM、物理卷、逻辑卷

前言    (空格) :分区挂载和扩容是两码事 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量&a…

在Linux系统内搭建DNS本地服务器

文章目录 Linux的本地DNS服务一、什么是DNS1.1、域名1.2、DNS服务器、DNS客户端和DNS中继1.3、DNS域名解析 二、搭建DNS服务2.1、正反向解析2.1.1.安装bind软件包2.1.2.修改主配置文件2.1.3.修改区域配置文件2.1.4.配置区域数据文件2.1.5.启动服务、关闭防火墙2.1.6.本地解析测…

网络安全实训Day24(End)

写在前面 并没有完整上完四个星期,老师已经趁着清明节假期的东风跑掉了。可以很明显地看出这次持续了“四个星期”实训的知识体系并不完整,内容也只能算是一次基础的“复习”。更多的内容还是靠自己继续自学吧。 网络空间安全实训-渗透测试 文件包含攻击…

美国FBA头程物流降本增效策略解析

随着跨境电商的迅速发展,美国FBA头程物流作为连接卖家与消费者的重要环节,其成本控制对于提高卖家盈利能力具有重要意义。本文将从多个方面探讨如何降低美国FBA头程物流成本,帮助卖家在激烈的市场竞争中取得优势。 1.合理安排发货计划是降低成…

【产品经理修炼之道】- 消金支付体系

我们常听说“互联网的尽头是放贷”,而当支付与金融结合会衍生出各种场景。本文将给大家拆解下不同消费金融场景下的支付案例,一起来看看吧。 各位小伙伴,大家好! 我们常听说“互联网的尽头是放贷”,确实这说其实话糙…

Docker基础+虚拟化概念

目录 一、虚拟化简介 1、虚拟化概述 2、cpu的时间分片(cpu虚拟化) 3、cpu虚拟化性性能瓶颈 4、虚拟化工作 4.1虚拟机工作原理 4.2两大核心组件:QEMU、KVM 4.2.1QEMU: 4.2.2KVM: 5、虚拟化类型 ①全虚拟化: …

string的OJ题

1.字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 思路:从字…

【Linux】git和gdb

下面还有两个Linux中会用到的工具,一个是给git,可以叫版本控制器,就是对我们写的代码进行版本控制 一个是gdb,就是我们C语言/C的代码调试工具 下面我们分别来介绍一下 git git和Linux一样,也是一个开源项目&#xff0c…