首页 前端知识 TypeScript编译选项

TypeScript编译选项

2024-08-22 23:08:14 前端知识 前端哥 479 281 我要收藏

创建配置文件 tsconfig.json

tsc --init

直接执行 tsc 命令,默认编译目录下所有的 ts 文件

1、include

需要被编译的 ts 文件

"include": [
	"./src/**/*"
]

路径:** 表示任意目录,*表示任意文件

2、exclude

不需要被编译的 ts 文件
默认值:[“node_modules”, “bower_components”, “jspm_packages”]

"exclude": [
	"./src/**/*"
]
3、extends

定义被继承的配置文件

"extends": [
	"./config/base"
]

表示当前配置文件中会自动包含 config 目录下 base.json 中所有的配置信息

4、files

指定被编译文件的列表,只有需要编译的文件少时才会用到

"files": [
	"core.ts",
	"sys.ts",
	"types.ts",
	"parser.ts"
]

以上列表中的文件都会被TS编译器所编译

5、compilerOptions

编译器的选项,里面包含多个子选项,用来完成对编译的配置

  "compilerOptions": {
  
  }
(1)target

指定TS被编译为ES的版本

可选值:es3(默认),es5,es6,es2015,es2016,es2017,es2018,es2019,es2020,es2021,es2022,esnext(最新版本)

"target": "es2016"
(2)module

指定要使用模块化的规范

可选值:commonjs,amd,system,umd,es6,es2015,es2020,esnext,none,es2022,node16,nodenext,preserve

"module": "commonjs"
(3)lib

指定项目中要使用的库。当代码在浏览器环境中运行的时候默认不用设置这个配置;当运行在nodejs中可以去改

可选值:
es5, es6, es2015,es7,es2016,es2017,es2018,es2019,es2020,es2021,es2022,esnext,dom,dom.iterable,webworker, webworker.importscripts, webworker.iterable,scripthost,es2015.core,es2015.collection,es2015.generator,es2015.iterable,es2015.promise,es2015.proxy,es2015.reflect,es2015.symbol,es2015.symbol.wellknown,es2016.array.include,es2017.object,es2017.sharedmemory,es2017.string,es2017.intl,es2017.typedarrays,es2018.asyncgenerator,es2018.asynciterable,es2018.intl,es2018.promise,es2018.regexp,es2019.array,es2019.object,es2019.string,es2019.symbol,es2020.bigint,es2020.date,es2020.promise,es2020.sharedmemory,es2020.string,es2020.symbol.wellknown,es2020.intl,es2020.number,es2021.promise,es2021.string,es2021.weakref,es2021.intl,es2022.array,es2022.error,es2022.intl,es2022.object,es2022.string,esnext.array,esnext.symbol,esnext.asynciterable,esnext.intl,esnext.bigint,esnext.string,esnext.promise,esnext.weakref.

"lib": ["es6", "dom"]
(4)outDir

用来指定编译后文件所在的目录

"outDir": "./dist"
(5)outFile

将编译后的代码合并为一个文件,注意:是所有全局作用域中的代码

"outFile": "./dist/app.js"
(6)allowJs

是否对 js文件进行编译,默认是 false

"allowJs": false
(7)checkJs

是否检查 js文件是否符合语法规范,默认是 false

"checkJs": false
(8)removeComments

编译后是否移除注释,默认是 false

"removeComments": false
(9)noEmit

是否生成编译后的文件,默认是 true

"noEmit": true
(10)noEmitOnError

当有错误的时候不生成编译后的文件,默认是 false

"noEmitOnError": false
(11)alwaysStrict

设置编译后的文件是否使用严格模式,默认是 false

"alwaysStrict": false
(12)noImplicitAny

不允许隐式的 any 类型,默认是 false

"noImplicitAny": false

如下,如果设置为 true 就会报错

function (a, b) {
	return a + b;
}

可改为:

function (a: number, b: number) {
	return a + b;
}
(13)noImplicitThis

不允许不明确类型的 this,默认是 false

"noImplicitThis": false

如下,如果设置为 true 就会报错,this 的类型是不明确的

function fn() {
	alert(this);
}

可改为:

function fn(this: Window) {
	alert(this);
}
(14)strictNullChecks

严格的检查空值,默认是 false

"strictNullChecks": false

如下:在网页中获取到的元素不一定存在,有可能为 Null,为 Null 时使用 addEventListener 方法就会报错。如果 strictNullChecks 设置为 true 就会报错

let box = document.getElementById('box')
box.addEventListener(click, function() {
	alert('box')
})

可改为:

let box = document.getElementById('box')
box?.addEventListener(click, function() {
	alert('box')
})
(15)strict

所有严格检查的总开关

"strict": true
转载请注明出处或者链接地址:https://www.qianduange.cn//article/16532.html
标签
评论
发布的文章

【Jquery】jquery的简单使用

2024-09-01 00:09:11

NodeJs使用jQuery中$Ajax

2024-09-01 00:09:45

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!