TypeScript 编译上下文

TypeScript 编译上下文

编译上下文是一个术语,表示将解析和分析的 TypeScript 文件的分组,以确定什么是有效的,什么是无效的。编译上下文包含有关使用哪些编译器选项的信息。我们可以使用 tsconfig.json 文件来定义这个 TypeScript 文件的逻辑分组。

我们可以使用 tsc <文件名>.ts 命令来编译 TypeScript 文件。当我们使用 “$tsc” 命令编译 TypeScript 代码时,编译器会搜索在 tsconfig.json 文件中加载的配置。TypeScript 还提供了一种编译大型项目中多个 .ts 文件的选项。

tsconfig.json

tsconfig.json 文件是一个以 JSON 格式表示的文件。在 tsconfig.json 文件中,我们可以指定各种选项,告诉编译器如何编译当前项目。

在任何新的 TypeScript 项目中,第一步都是添加 tsconfig.json 文件。要创建 tsconfig.json 文件,请打开文件夹,然后在根目录下添加一个名为 “tsconfig.json” 的新文件。

我们可以通过以下两种方式之一编译 TypeScript 项目:

  • 通过调用没有输入文件的 tsc: 在这种情况下,编译器从 当前目录 开始搜索 tsconfig.json 文件,然后跟随 parent directory 链。
  • 通过调用没有输入文件和 –project(或只是 -p)命令的 tsc: 在这种情况下,编译器指定包含 tsconfig.json 文件的目录的路径。它还指定了一个到包含配置的有效 .json 文件的路径。

创建 tsconfig.json 文件

我们可以使用以下命令在项目的 root 文件夹中创建 tsconfig.json 文件。

$ tsc --init                 

如果执行了上面的命令,则会创建一个默认的 tsconfig.json 文件。

{  
  "compilerOptions": {  
    "declaration": true,  
    "emitDecoratorMetadata": false,  
    "experimentalDecorators": false,  
    "module": "none",  
    "moduleResolution": "node",  
    "noFallthroughCasesInSwitch": false,  
    "noImplicitAny": false,  
    "noImplicitReturns": false,  
    "removeComments": false,  
    "sourceMap": false,  
    "strictNullChecks": false,  
    "target": "es3"  
  },  
  "compileOnSave": true  
}

包含和排除属性

包含(include)排除(exclude) 属性允许我们采用一个数组模式,以添加或删除 TypeScript 文件的编译过程中的列表。

{
    "compilerOptions": {
        "module": "system",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "outFile": "../../built/local/tsc.js",
        "sourceMap": true
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

compilerOptions 属性

我们可以使用 compilerOptions 来自定义编译器选项属性。它允许指定将附加选项传递给 TypeScript 编译器。以下是一些重要的编译器选项:

选项 类型 默认值 描述
--allowJs boolean false 允许编译 JavaScript 文件。
--alwaysStrict boolean false 以严格模式解析并为每个源文件发出 “use strict”。
--baseUrl string 这是解析非目录模块名称的基本目录。
--build–b boolean false 用于构建项目及其由项目引用指定的所有依赖项。
--declaration–d boolean false 它生成一个相应的 .d.ts 文件。
--diagnostics boolean false 它显示诊断信息。
--experimentalDecorators boolean false 启用 ES 装饰器的实验支持。
--isolatedModules boolean false 用于将每个文件转换为单独的模块。
--module–m string target === “ES3” 或 “ES5” ? “CommonJS” : “ES6” 输出模块类型,例如“CommonJS”,AMD,System,ES6,ES2015 或 ESNext。如果目标属性是 ES3 或 ES5,则默认值为 CommonJS;否则默认为 ES6。
--moduleResolution string module === “AMD” 或 “System” 或 “ES6” ? “Classic” : “Node” 确定如何解析模块。要么为 “Node”,表示 Node.js/io.js 风格的解析方式,要么是 “Classic”。
--noEmitOnError boolean false 如果有任何错误报告,则不要发出输出。
--outDir string 将输出结构重定向到目录。
--sourceMap boolean false 生成一个相应的 .map 文件。它有助于调试。
--target–t string “ES3” 指定 ECMAScript 目标版本: “ES3” (默认), “ES5”, “ES6″/”ES2015”, “ES2016”, “ES2017” 或 “ESNext”。
--watch–w 运行编译器以观察模式。这意味着每当更改任何源文件时,编译过程将重新触发以再次生成已转换的文件。

要查看完整的编译器选项列表,请转到 官方页面

compileOnSave

它是一个属性,用于设置 IDE 自动编译所包含的 TypeScript 文件并生成输出。它表示向 IDE 发信号,要在保存 tsconfig.json 的所有文件时生成所有文件。

{
   "compileOnSave": true,
   "compilerOptions": {
       "noImplicitAny" : true
   }
}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程