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

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

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.kler.cn/a/547693.html

相关文章:

  • 【第6章:强化学习基础与深度强化学习—6.4 强化学习在游戏、自动驾驶等领域的应用案例】
  • 无人机雨季应急救灾技术详解
  • 智慧城市V4系统小程序源码独立版全插件全开源
  • Day45(补)【软考】2022年下半年软考软件设计师综合知识真题-计算机软件知识1
  • Sass更新:@import——>@use
  • 【Springboot知识】从零开始配置springfox
  • 字节流的介绍与使用
  • PAT乙组(1016 部分A+B 1017 A除以B)C语言超详细
  • LM Studio笔记
  • 【人工智能】如何选择合适的大语言模型,是能否提高工作效率的关键!!!
  • 云计算——AWS Solutions Architect – Associate(saa)7.放置群组
  • print(f“Random number below 100: {random_number}“)的其他写法
  • 了解rtc_time64_to_tm()和rtc_tm_to_time64()
  • Biopython PDB模块的PDBParser和MMCIFParser介绍
  • 如何使用CSS画一个三角形,原理是什么?
  • DeepSeek操作Excel,实现图表自动化生成
  • LLaMA-Factory DeepSeek-R1 模型 微调基础教程
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十二节】
  • PLC跨平台通信困难?DeepSeek边缘计算网关实现数据无缝连接!
  • 【PSIM】RS触发器的使用