乐趣区

关于前端:现代TypeScript高级教程解读TSConfig

点击在线浏览,体验更好 链接
古代 JavaScript 高级小册 链接
深入浅出 Dart 链接
古代 TypeScript 高级小册 链接

解读 TSConfig

TypeScript 配置文件(tsconfig.json)是用于配置 TypeScript 我的项目的重要文件。它容许开发者自定义 TypeScript 编译器的行为,指定编译选项、文件蕴含与排除规定、输入目录等。通过合理配置 tsconfig.json,咱们能够依据我的项目需要进行灵便的 TypeScript 编译设置。

本文将全面解读 tsconfig.json 的各个配置选项,并提供一些常见的应用场景和示例代码,以及封装定制化本人 tsconfig.base 配置

创立和根本配置

要应用 TypeScript 配置文件,咱们首先须要创立一个名为 tsconfig.json 的文件,并将其搁置在我的项目的根目录下。

上面是一个根本的 tsconfig.json 配置示例:

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "dist"
  },
  "include": ["src/**/*.ts"],
  "exclude": [
    "node_modules",
    "dist"
  ]
}

在上述示例中,咱们应用 compilerOptions 配置选项指定了 TypeScript 编译器的选项。其中:

  • "target": "es6" 指定编译的指标 JavaScript 版本为 ES6。
  • "module": "commonjs" 指定模块的生成形式为 CommonJS。
  • "outDir": "dist" 指定输入目录为 “dist”。

同时,咱们应用 includeexclude 配置选项别离指定了须要编译的源文件的蕴含规定和排除规定。

compilerOptions

compilerOptions 是 tsconfig.json 中最重要的配置选项之一,它容许咱们指定 TypeScript 编译器的各种行为和设置。以下是一些罕用的 compilerOptions 配置选项:

target

target 选项指定了编译后的 JavaScript 代码所要遵循的 ECMAScript 规范。常见的选项包含 "es5""es6""es2015""es2016" 等。

"compilerOptions": {"target": "es6"}

module

module 选项用于指定生成的模块化代码的模块零碎。常见的选项包含 "commonjs""amd""es2015""system" 等。

"compilerOptions": {"module": "commonjs"}

outDir

outDir 选项指定了编译输入的目录门路。

"compilerOptions": {"outDir": "dist"}

strict

strict 选项用于启用严格的类型检查和更严格的编码标准。

"compilerOptions": {"strict": true}

lib

lib 选项用于指定 TypeScript 编译器能够应用的 JavaScript 规范库的列表。默认状况下,

TypeScript 编译器会依据指标版本主动抉择适合的库。

"compilerOptions": {"lib": ["es6", "dom"]
}

sourceMap

sourceMap 选项用于生成与源代码对应的源映射文件(.map 文件),以便在调试过程中能够将编译后的 JavaScript 代码映射回原始 TypeScript 代码。

"compilerOptions": {"sourceMap": true}

paths

paths 选项用于配置模块解析时的门路映射,能够帮忙咱们简化模块导入的门路。

"compilerOptions": {
  "paths": {"@/*": ["src/*"]
  }
}

allowJs

allowJs 选项容许在 TypeScript 我的项目中引入 JavaScript 文件,使得咱们能够混合应用 TypeScript 和 JavaScript。

"compilerOptions": {"allowJs": true}

esModuleInterop 和 allowSyntheticDefaultImports

esModuleInterop 属性用于提供对 ES 模块的兼容性反对。当咱们在 TypeScript 我的项目中引入 CommonJS 模块时,能够通过设置 esModuleInteroptrue 来防止引入时的谬误。

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "lib": ["es6", "dom"],
    "outDir": "dist",
    "rootDir": "src",
    "strict": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true
  }
}

在下面的示例中,咱们设置了 esModuleInteropallowSyntheticDefaultImports 属性为 true,以反对对 ES 模块的兼容性导入。

更多的 compilerOptions 配置选项能够参考 TypeScript 官网文档:Compiler Options.

include 和 exclude

includeexclude 配置选项用于指定哪些文件应该蕴含在编译过程中,以及哪些文件应该排除在编译过程之外。

include 是一个文件或者文件夹的数组,用于指定须要编译的文件或文件夹的门路模式。

"include": [
  "src/**/*.ts",
  "test/**/*.ts"
]

exclude 是一个文件或者文件夹的数组,用于指定须要排除的文件或文件夹的门路模式。

"exclude": [
  "node_modules",
  "dist"
]

在上述示例中,咱们将 src 文件夹和 test 文件夹下的所有 TypeScript 文件蕴含在编译过程中,并排除了 node_modules 文件夹和 dist 文件夹。

文件援用和 composite

files 配置选项容许咱们显式列出须要编译的文件门路。

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

composite 配置选项用于启用 TypeScript 的我的项目援用性能,容许咱们将一个 TypeScript 我的项目作为另一个我的项目的依赖。

"composite": true

declaration

declaration 配置选项用于生成申明文件(.d.ts 文件),它们蕴含了编译后 JavaScript 代码的类型信息。

"declaration": true

tsconfig.json 继承

TypeScript 反对通过 extends 配置选项从其余的 tsconfig.json 文件中继承配置。

{
  "extends": "./tsconfig.base.json",
  "compilerOptions": {"outDir": "dist"},
  "include": ["src/**/*.ts"]
}

在上述示例中,咱们通过 extends 指定了一个根底配置文件 tsconfig.base.json,而后在以后的 tsconfig.json 中增加了额定的编译选项和文件蕴含规定。

定制化 tsconfig.base

制化 tsconfig.base 能够让咱们在多个我的项目中共享和复用配置,进步开发效率。上面是一些步骤来封装本人的 TSConfig 为一个库:

首先,咱们须要创立一个新的 TypeScript 我的项目作为咱们的库我的项目。能够应用以下命令初始化一个新的我的项目:

$ mkdir my-tsconfig-lib
$ cd my-tsconfig-lib
$ npm init -y

2. 创立 tsconfig.json 文件

在我的项目根目录下创立一个名为 tsconfig.json 的文件,并将 TSConfig 的配置内容增加到其中。

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "outDir": "dist"
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "dist"]
}

这是一个示例的 TSConfig 配置,你能够依据本人的需要进行相应的批改。

3. 创立包入口文件

为了可能在其余我的项目中应用咱们的库,咱们须要创立一个入口文件来导出咱们的 TSConfig。

在我的项目根目录下创立一个名为 index.ts 的文件,并增加以下代码:

import * as tsconfig from './tsconfig.json';

export default tsconfig;

在上述代码中,咱们将 tsconfig.json 导入为一个模块,并应用 export default 将其导出。

4. 构建和公布

当初咱们能够应用 TypeScript 编译器将咱们的代码构建为 JavaScript,以便在其余我的项目中应用。

首先,确保你曾经在我的项目中装置了 TypeScript:

$ npm install typescript --save-dev

而后,在 package.json 中增加构建脚本:

{
  "scripts": {"build": "tsc"}
}

最初,运行构建命令进行构建:

$ npm run build

构建实现后,咱们的库文件

将位于 dist 目录下。

5. 公布到 NPM

要将咱们的 TSConfig 封装为一个库,并使其可供其余我的项目应用,咱们能够将其公布到 NPM。

首先,创立一个 NPM 账号,并登录到 NPM:

$ npm login

而后,在我的项目根目录下运行以下命令公布库:

$ npm publish

公布胜利后,咱们的 TSConfig 库就能够在其余我的项目中应用了。

6. 在其余我的项目中应用

在其余我的项目中应用咱们的 TSConfig 库非常简单。首先,在指标我的项目中装置咱们的库:

$ npm install my-tsconfig-lib --save-dev

而后,在指标我的项目的 tsconfig.json 文件中应用咱们的 TSConfig:

{"extends": "my-tsconfig-lib"}

通过 extends 配置选项,咱们能够继承和应用咱们的 TSConfig。

总结

通过 tsconfig.json 文件,咱们能够配置 TypeScript 编译器的行为,包含编译选项、文件蕴含与排除规定、输入目录等。合理配置 tsconfig.json 能够帮忙咱们依据我的项目需要进行灵便的 TypeScript 编译设置。

具体的 TypeScript 配置文件的参考信息能够在 TypeScript 官网文档中找到:tsconfig.json

退出移动版