上一章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文件。
- 通过不使用输入文件和——project(或-p)命令调用tsc:在这种情况下,编译器指定包含tsconfig.json文件的目录的路径,它还指定了包含配置的有效.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
}
包含和排除属性包含和排除属性允许我们使用数组模式从编译过程中添加或删除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” or “ ES5” ? “ CommonJS” : “ ES6” | 输出模块类型,例如“CommonJS”, AMD ?、“System”、“ES6”、“ES2015”或“ESNext”。如果目标属性为ES3或ES5,则默认值为CommonJS; 否则默认为ES6。 |
– moduleResolution | string | module === “ AMD” or “ System” or “ ES6” ? “ Classic” : “ Node” | 它决定如何解析模块。Node.js/io.js风格解析的“Node”,或者“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
}
}
推荐阅读
- 如何实现最近最少使用(LRU)页面替换算法程序()
- Python中的numpy.subtract()用法详细介绍
- AngularJS指令完整参考指南
- C++如何使用std::search(代码示例)
- Python Numpy介绍和用法经典指南
- JavaScript中的函数介绍和用法详细指南
- 如何TCP和UDP之间的区别()
- 如何实现SSTF磁盘调度算法程序()
- jQuery如何使用jTippy工具提示插件()