jsx 选项:
target 配置决定了你的构建代码使用的语法,常用值包括 es5、es6、es2018、es2021、esnext(基于目前的 TypeScript 版本所支持的最新版本) 等等
更改 target 配置也会同时影响你的 lib 配置默认值,而它决定了你是否能使用某些来自于更新版本的 ECMAScript 语法
除了高版本语法以外,lib 其实也和你的实际运行环境有关。比如,当你的代码仅在 Node 环境下运行时,你的 lib 中不应当包含 "DOM" 这个值。对应的,代码中无法使用 window 、document 等全局变量
src/**/*
表示匹配 src 下所有的合法文件项目文件的根目录,默认情况下它是项目内包括的所有 .ts 文件的最长公共路径
PROJECT
├── src
│ ├── index.ts
│ ├── app.ts
│ ├── utils
│ │ ├── helpers.ts
├── declare.d.ts
├── tsconfig.json
如上是推断为 src
rootDir 包含的文件才会被生成在 outDir(/dist) 内
rootDirs 用于实现多个虚拟目录的合并解析
定义文件进行解析的根目录,它通常会是一个相对路径,然后配合 tsconfig.json 所在的路径来确定根目录的位置
可以通过这一配置,在导入语句中使用相对 baseUrl 的解析路径
import "src/core";
paths 类似于 Webpack 中的 alias,允许你通过 @/utils 或类似的方式来简化导入路径
进行相当于 bashUrl 的声明映射
paths 的解析是基于 baseUrl 作为相对路径的,因此需要确保指定了 baseUrl
但是打包时不会帮助解析?需要插件
默认情况下,TypeScript 会加载 node_modules/@types/ 下的所有声明文件,包括嵌套的 ../../node_modules/@types 路径
可以只加载实际使用的类型定义包
"types": ["node", "jest", "react"]
typeRoots 选项,其默认为 @types,可以更改加载路径
"typeRoots": ["./node_modules/@types", "./node_modules/@team-types", "./typings"]
指定了模块的解析策略,可以配置为 node(默认) 或者 classic,classic 主要作向后兼容用,基本不推荐使用
可以直接导入 Json 文件,并对导入内容获得完整的基于实际 Json 内容的类型推导
最终 JavaScript 产物使用的模块标准,常见的包括 CommonJs、ES6、ESNext 以及 NodeNext 等(实际的值也可以是全小写的形式)。另外也支持 AMD、UMD、System 等模块标准
outDir 配置的值将包括所有的构建产物,通常情况下会按照原本的目录结构存放
outFile 类似于 Rollup 或 ESBuild 中的 bundle 选项,它会将所有的产物(其中非模块的文件)打包为单个文件,但仅能在 module 选项为 None / System / AMD 时使用
noEmit 开启时将不会写入文件系统中,即只进行类型检查