充实网站 廉政建设 板块,网站做备案需要多久,wordpress 博客host,软件类专业有哪些tsconfig.json是ts编译器的配置文件#xff0c;ts编译器可以根据他的信息来对代码进行编译。 想要学习这篇文章小伙伴#xff0c;可以先去看看下面文章#xff0c;可以明白tsconfig.json的由来以及如何编译#xff1a;
在vscode中使用Typescript并运行_typescript vscode…tsconfig.json是ts编译器的配置文件ts编译器可以根据他的信息来对代码进行编译。 想要学习这篇文章小伙伴可以先去看看下面文章可以明白tsconfig.json的由来以及如何编译
在vscode中使用Typescript并运行_typescript vscode插件_suohs Blog的博客-CSDN博客
下面开始讲解常用的配置项
include 和 exclude 先学两个比较实用的两个配置项最常用的还是include
{/**include 用来指定哪些ts文件需要被编译路径**表示任意目录* 表示任意文件*/include: [./src/**/* //代表编译包含src目录下的任意目录的任意文件其余的不编译],/**exclude 用来排除哪些ts文件需要被编译默认值:[“node modues”、“bower_components”和Sspm_packages”]*/// exclude该选项一般不设置用不到exclude: [./test/**/* //不编译test下的所有文件]
} compilerOptions
compilerOptions是编译器的选项比较复杂的配置选项里面包含若干个子项下面依次讲解各个子项的作用。
target
target 用来指定ts被编译为ES的版本默认是ES3可以是 es3, es5, es6, es2015, es2016, es2017,es2018,es2019,es2020,esnext.
module
指定要使用的模块化的规范 例如 module: es2015或者 module: CommonJS,可以是 none, commonjs, amd, system, uma, es6, es2015, es2020, esnext.
当定义module: es2015 时推荐
来演示一下module的作用我们先定义一个test.ts文件 然后再indes.ts中引入这个模块可以看到编译为js的时候是es6的模块化标准方法 那么module也可以采用commonjs那么编译过来的语法就是commonjs的语法了
当定义module: commonjs 时 lib 用来指定项目中要使用的库例如document上的方法就属于一个dom库一般不定义该属性默认即可
outDir
用来指定编译后的文件所在的目录此时就可以看到我们编译之后的文件都会存在在js目录下 outFile
将代码合并为一个文件设置outFile后所有的全局作用域中的代码会合并到同一个文件中 outFile: ./js/index.js,就代表将所有的js目录下的js文件都合并到index.js里面 用的比较少了解即可
可以看到确实是合并了 allowJs
是否对js文件进行编译默认是false
比如我们目录下有个test.js此时设置allowJs为false的时候它是不会被编译的 checkJs
是否检查js代码是否符合语法规范默认是false
removeComments
是否移除注释默认false
设置为false的时候注释是同样编译过来的 当设置为true编译后就不会有注释可以看到注释就消失了 noEmit 不生成编译后的js文件默认就是false
noEmitOnError
当有错误时不生成编译文件
下面是关于代码类型检查的相关属性设置首先我们应该都知道在严格模式下进行代码开发要比普通模式性能要好那在js文件中开启严格模式只需要在开头添加 ‘use strict’ 即可 那么ts中如何开启呢
alwaysStrict 用来设置编译后的文件是否使用严格模式默认false
noImplicitAny 不允许隐式的any类型默认false
我们定义一个函数设置两个隐式类型参数此时也不会报错 当设置为true的时候就会报错了。 加上类型就好了 noImplicitThis 不允许不明确类型的this默认为false
当设置为true时就会报错 此时就需要我们手动去设置this的指向 strictNullChecks
严格的检查空值可以提示一些不确定是否是空值的逻辑方便我们对空值做判断
strict
所有严格检查的总开关为true时相当于开启了所有严格检查false则关闭所有
今天讲解的常用的tsconfig.json设置全代码如下
{// compilerOptions编译器的选项compilerOptions: {// target 用来指定ts被编译为ES的版本默认是ES3 // 可以是 es3, es5, es6, es2015, es2016, es2017,es2018,es2019,es2020,esnext.target: ES6,// module 指定要使用的模块化的规范module: CommonJS,// outDir 用来指定编译后文件所在的目录outDir: ./js,// 将代码合并为一个文件// outFile: ./js/index.js,// 是否对js文件进行编译默认是falseallowJs: false,// 是否检查js代码是否符合语法规范默认是falsecheckJs: false,// 是否移除注释removeComments: true,// 不生成编译后的文件noEmit: false,// 当有错误时不生成编译文件noEmitOnError: false,// 所有严格检查的总开关strict: false,// 用来设置编译后的文件是否使用严格模式默认falsealwaysStrict: false,// 不允许隐式的any类型noImplicitAny: true,// 不允许不明确类型的thisnoImplicitThis: false,// 严格的检查空值strictNullChecks: false,},/**include 用来指定哪些ts文件需要被编译路径**表示任意目录* 表示任意文件*/include: [./**/* //代表编译包含src目录下的任意目录的任意文件其余的不编译],/**exclude 用来排除哪些ts文件需要被编译默认值:[“node modues”、“bower_components”和Sspm_packages”]*/// exclude该选项一般不设置用不到exclude: [./test/**/* //不编译test下的所有文件]
}