梗概:

运行了tsc --init之后 在ts项目的根目录下, 会有一个tsconfig.json的文件

一些重要配置项

1. module

"module": "CommonJS", 编译出来的js采用CommonJS模块化规范

1.1. 说明:

  1. 其中值可以为ESnext

2. include和exclude

child::include和exclude配置项

3. compilerOptions配置项

child::

compilerOptions配置项

包含的重要配置项:

1. 目标版本:

  • “module”: “目标版本” ^02h0wd
    • 指定 ts 编译生成的 js 所使用的[use::JS的模块化规范]
    • 但可能并不是严格转换:
      • module:"ESNext"不会将require()转换,而且ES6模块化 ES module的语句也基本不变
      • module: "commonjs"会将所有的模块化语句都转化为CommonJS
  • “target”: “目标版本”
    • 指定 ts 编译生成的 js 代码的语法版本, 如es6等…
  • outfile: “目标地址”
    • 将编译生成的所有js代码合为一个,输出到目标地址
    • 将编译生成的所有类型声明文件合为一个,输出到目标地址
    • 例如:outfile:”./index.js”,在根目录输出index.js和index.d.ts文件

2. 严格模式

生成类型声明文件

  • declaration: true 编译的时候生成类型声明文件 ^d217c2
    • 常常配合outfile选项使用,指定生成的位置
  • emitDeclarationOnly: true 只生成类型声明文件
  • 生成的类型声明文件同时会声明模块
    • 模块的名字来自^415966的文件名

类型检查的配置

  • lib: 字符串数组 ,表示ts进行类型检查的时候允许哪些运行时的类型
        - 如果你的代码将在浏览器中运行,那么你可能需要包含 dom 库,它提供了浏览器 DOM API 的类型定义。
        - 如果你的代码将在 Node.js 环境中运行,那么你可能需要包含 node 库,它提供了 Node.js API 的类型定义。
        - 如果你的代码中使用了 Promise,那么你应该选择一个包含 Promise 类型定义的库,例如 es2015 或更高版本。

配置npm包路径解析方式为COMMONJS

混合commonjs与ESM

  • moduleResolution: "nodenext"
    • 需要ts 4.7版本以上!

实例

路径解析

child::

路径解析

指向原始笔记的链接

指向原始笔记的链接