tsconfig.json 文件配置

创建 TypeScript 的配置文件 tsconfig.json

npx tsc --init

tsconfig.json 文件基础结构

{
    "compilerOptions": {
        "target": "ES2022",
        "module": "ES2022",
        "moduleResolution": "node10",
        "strict": true,
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "outDir": "./dist",
        "rootDir": "./src",
        "sourceMap": true,
        "skipLibCheck": true
    },
    "include": [
        "src"
    ],
    "exclude": [
        "node_modules", "dist"
    ]
}

主要配置说明:

配置说明
target

生成的 JavaScript 版本,选项如下:
ES3:适用于老旧浏览器,如 IE6-IE8。
ES5:兼容性好,适用于大多数现代浏览器(IE9+)。
ES6 / ES2015、ES2016、ES2017、ES2018...ES2024等。
ESNext:始终使用最新的 ECMAScript 版本。

module

指定模块化的方式,选项如下:
None: 不使用模块化。
CommonJS: 用于 Node.js 环境,最常见的模块系统。
ES6 / ES2015: 使用 ECMAScript 模块(ESM)。
AMD: 用于浏览器环境的异步模块定义。
System: 支持 SystemJS 模块加载器。
UMD: 兼容浏览器和 Node.js 的模块。
ESNext: 目标 ECMAScript 最新版本的模块系统。
如果你是Node.js+TypeScript+ES6+(例如ES2022)环境,那么就选择ES2022。

references用于把一个大型项目拆分成多个小的 子项目(tsconfig 项目),实现模块化、增量编译和更好的项目管理。通过 references,你可以让一个 tsconfig.json 指向另一个子项目,让 TypeScript 知道项目间的依赖关系。这样能加快编译速度,也方便管理大型 monorepo 或多包项目。
"references": [
    {
        "path": "./tsconfig.app.json"
    },
    {
        "path": "./tsconfig.node.json"
    }
],
strict

是否使用TypeScript 的严格类型检查。true:启用,false:不启用。

esModuleInterop是否允许 TypeScript 兼容 CommonJS 模块与 ECMAScript 模块的导入。
forceConsistentCasingInFileNames是否强制确保文件名的大小写一致。
outDir指定编译后的 JavaScript 文件存放的目录。
rootDir指定 TypeScript 编译器查找输入文件的根目录。它定义了源代码的根目录,编译器会相对于这个目录编译文件并保持目录结构。编译时会以该目录为基准,生成对应的输出文件。
sourceMap生成源映射文件。启用该选项后,编译器会生成 .map 文件,这些文件将 JavaScript 代码与原始 TypeScript 代码关联起来,有助于调试。这样,在浏览器或调试器中调试时,可以直接查看 TypeScript 源代码,而不是编译后的 JavaScript 代码。
skipLibCheck跳过对库文件(如 node_modules 中的声明文件)进行类型检查。这可以加速编译过程,尤其是在大型项目中,尽管这可能会导致某些库文件的类型错误无法被检测到。除非你有性能需求,不然建议关闭这个选项。
include指定哪些文件或目录应该被 TypeScript 编译。它是一个包含文件路径的数组,可以指定具体的文件或文件夹。
exclude指定哪些文件或目录应该从编译过程中排除。与 include 相反,exclude 列出了不需要编译的文件或目录。
baseUrl指定模块解析的根目录。设置了 baseUrl 后,你可以使用相对路径的方式导入模块,避免过多的 ../../ 这样的路径。
paths 指定模块的别名或路径映射。通过与 baseUrl 配合使用,允许你为模块指定更简洁的导入路径,而不是使用相对路径。

moduleResolution

控制 TypeScript 如何解析模块,选项如下:
node:遵循 Node.js 模块解析规则。
classic:早期的模块解析方式,不符合 Node.js 规则。
node10:针对 Node.js 10 环境的解析方式,支持新的解析机制。
node16: 针对 Node.js 16 环境的解析方式,支持新的解析机制。
nodenext:专为 Node.js 16+ 和更高版本设计的模块解析策略。

resolveJsonModule导入 JSON 文件,true:允许,false:不允许
noUnusedLocals检测未使用的局部变量,true:检测,false:不检测
noUnusedParameters检测未使用的函数参数,true:检测,false:不检测
strictPropertyInitialization确保类属性在构造函数中被正确初始化,true:检测,false:不检测

TypeScript 编译

在 tsconfig.json 配置完成后,可以使用 tsc 进行编译,会读取 tsconfig.json 并进行编译,生成 .js 文件

npx tsc

如果想让 TypeScript 自动编译,可以使用 --watch 模式,TypeScript 代码一旦修改,编译器会自动重新编译。

# 自动编译
npx tsc --watch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

7 号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值