当前位置: 首页 > news >正文

Typescript 【详解】配置文件 tsconfig.json

用于控制 TypeScript 编译器如何将 .ts 文件编译为 .js 文件

可以使用命令生成

npx tsc --init
{"compilerOptions":{"target":"ES6","module":"commonjs","strict":true},"include":["src/**/*.ts"],"exclude":["node_modules"]}
  • include:指定需要被 TypeScript 编译器处理的文件或目录
  • exclude:指定不需要被 TypeScript 编译器处理的文件或目录
  • compilerOptions:配置 TypeScript 编译器的行为,比如指定编译目标版本、模块系统、是否开启严格模式等。

compilerOptions

baseUrl

// 配置基础目录,用于解析非相对模块路径"baseUrl":"./",

paths

// 配置路径别名,用于导入模块"paths":{"@/*":["src/*"],"@components/*":["src/components/*"],"~img/*":["src/assets/images/*"],"#types/*":["src/types/*"]}

target

指定编译后的 JavaScript 版本,常见的值有 ES3、ES5、ES6(或 ES2015)、ES2016 等,版本越低,兼容性越强,常用 ES5

lib

指定编译过程中需要包含的库文件,比如 ES5、DOM、ESNext 等。如果你使用了 Promise 等 ES6+ 的特性,可能需要包含 ES2015.Promise。

"lib":["ES2015.Promise","DOM"]

module

指定生成的模块系统,常见的值有 commonjs、amd、esnext 等。如果你的项目是 Node.js 项目,通常使用 commonjs,现代项目常用 ESNext。

moduleResolution

指定模块解析策略,可选值有 node 和 classic,一般使用 node。

strict(推荐 true)

(值为 true 或 false )开启所有严格类型检查选项,包括 noImplicitAny、strictNullChecks 等,建议开启以提高代码的健壮性。

noImplicitAny

(值为 true 或 false )不允许隐式的 any 类型,即所有变量和函数参数都必须明确指定类型。

strictNullChecks

(值为 true 或 false )开启严格的空值检查,避免使用可能为 null 或 undefined 的值而不进行检查。

outDir

指定编译后的文件输出目录。

rootDir

指定编译文件的根目录,编译器会根据这个目录来确定输出文件的目录结构。

declaration(推荐 true)

(值为 true 或 false )指定 TypeScript 编译器在编译过程中是否生成对应的类型声明文件(.d.ts 文件)

extends

如果你有多个 TypeScript 项目,并且希望共享一些通用的配置,可以使用 extends 字段。它允许你继承另一个 tsconfig.json 文件的配置。

"extends":"./base-tsconfig.json",

files

指定需要编译的具体文件列表,它和 include 的区别在于,files 是指定具体的文件路径,而 include 是使用 glob 模式匹配文件。

"files":["src/main.ts","src/utils.ts"]

其他相关知识

tsconfig.node.json 文件,是项目在 node 环境中运行的 Typescript 配置文件

实战范例

{"compilerOptions":{"target":"ES6","module":"commonjs","lib":["ES2015","DOM"],"strict":true,"esModuleInterop":true,"skipLibCheck":true,"forceConsistentCasingInFileNames":true,"outDir":"./dist","rootDir":"./src"},"include":["src/**/*.ts"],"exclude":["node_modules"]}
http://www.jsqmd.com/news/1275635/

相关文章:

  • 5分钟上手MathBox.js:创建交互式数学图表的简单步骤
  • 小白程序员必看:收藏这份AI Agent Tool Use实战指南,解锁大模型“动手能力”
  • F9微内核与传统RTOS的对比:为什么微内核架构更适合嵌入式安全
  • Jellium Desktop多语言字幕自动下载:获取影片的所有字幕
  • LED驱动电源行业技术路线与工艺要点系统梳理
  • 贡献你的声音:如何为heylinda-app录制冥想音频,成为开源项目的一部分
  • Windows Cleaner:如何用开源工具彻底解决C盘空间不足问题?
  • 高性能DSP电源系统设计:从需求分析到PCB布局的工程实践
  • ChanlunX缠论分析工具:通达信插件如何帮你节省90%技术分析时间
  • 百考通:AI精准赋能实践报告,让实习总结专业,满足多元研究场景
  • 2026经验丰富餐厨设备厂家10项口碑拆解 - 信息热点
  • 联盟营销自动化指南:如何扩展您的联盟营销规模与提升转化率?
  • 解决BeautifulDiscord常见问题:安装失败、样式不生效怎么办?
  • gh_mirrors/mov/movies高级技巧:如何实现电影详情页的滚动头部效果
  • 告别网盘限速!一键获取九大网盘直链下载地址的终极解决方案
  • 终极指南:phpMyFAQ开源知识库系统的完整部署与应用实践
  • PinWin窗口置顶工具:终极指南让任何窗口永远显示在最上层
  • 计算机JAVA毕设实战-基于 SpringBoot+Vue 的小区停车场微信小程序运维管理平台 智慧社区车辆进出识别与停车计费系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 拒绝“屎山数据清洗”:主流开源金融库(Tushare/AkShare)vs QuantDash API 深度硬核测评
  • Uchiwa高级功能探索:自定义视图与告警规则设置教程
  • 计算机毕业设计之鲜花售卖系统
  • 低延!DeepSeek-V4-Flash 享受特惠,DMXAPI 轻松接入享7.9折,国产 AI 再创优势
  • 天津钻石回收避坑全攻略,2026 消费者变现防踩坑指南 - 日常财经早知道
  • Maka Agent安全权限管理:控制AI助手的访问范围
  • Python3作业实战:从环境搭建到项目部署
  • JAVA毕设选题推荐:基于 SpringBoot 的手袋厂生产货物运维系统 手袋成品库存盘点与订单发货管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 老板怎么看公司数据:当中层汇报层层失真,决策该怎么拍
  • 攻克Android加固难题:BlackDex的3种高效脱壳实战方案解析
  • struct2json自动生成代码教程:Python脚本助力C结构体序列化
  • 大模型应用开发岗位火爆!小白程序员必看,收藏学习路径助你抓住AI风口!