本文介绍: 可以是 ‘es3′, ‘es5′, ‘es6′, ‘es2015′, ‘es2016′, ‘es2017′,’es2018′,’es2019′,’es2020′,’esnext‘.可以是 “none‘, ‘commonjs‘, ‘amd‘, ‘system‘, ‘uma, ‘es6’, ‘es2015’, ‘es2020’, ‘esnext‘.指定要使用的模块化的规范 例如 “module“: “es2015″,或者 “module“: “CommonJS”,
tsconfig.json是ts编译器的配置文件,ts编译器可以根据他的信息来对代码进行编译。
想要学习这篇文章小伙伴,可以先去看看下面文章,可以明白tsconfig.json的由来以及如何编译:
在vscode中使用Typescript并运行_typescript vscode插件_suoh’s Blog的博客-CSDN博客
include 和 exclude
{
/**
"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的作用,我们先定义一个test.ts文件,
然后再indes.ts中引入这个模块,可以看到编译为js的时候是es6的模块化标准方法
那么module也可以采用commonjs,那么编译过来的语法就是commonjs的语法了
lib
outDir
outFile
可以看到确实是合并了
allowJs
比如我们目录下有个test.js此时设置allowJs为false的时候,它是不会被编译的
checkJs
removeComments
noEmit
noEmitOnError
下面是关于代码类型检查的相关属性设置,首先我们应该都知道在严格模式下进行代码开发要比普通模式性能要好,那在js文件中开启严格模式只需要在开头添加 ‘use strict’ 即可
那么ts中如何开启呢?
alwaysStrict
noImplicitAny
加上类型就好了:
noImplicitThis
strictNullChecks
strict
{
// 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文件进行编译,默认是false
"allowJs": false,
// 是否检查js代码是否符合语法规范,默认是false
"checkJs": false,
// 是否移除注释
"removeComments": true,
// 不生成编译后的文件
"noEmit": false,
// 当有错误时不生成编译文件
"noEmitOnError": false,
// 所有严格检查的总开关
"strict": false,
// 用来设置编译后的文件是否使用严格模式,默认false
"alwaysStrict": false,
// 不允许隐式的any类型
"noImplicitAny": true,
// 不允许不明确类型的this
"noImplicitThis": false,
// 严格的检查空值
"strictNullChecks": false,
},
/**
"include" 用来指定哪些ts文件需要被编译
路径:**表示任意目录
* 表示任意文件
*/
"include": [
"./**/*" //代表编译包含src目录下的任意目录的任意文件,其余的不编译
],
/**
"exclude" 用来排除哪些ts文件需要被编译
默认值:[“node modues”、“bower_components”和Sspm_packages”]
*/
// exclude该选项一般不设置,用不到
"exclude": [
"./test/**/*" //不编译test下的所有文件
]
}
原文地址:https://blog.csdn.net/qq_41579104/article/details/129856763
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_6699.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。