开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天
TS编译选项
每次更改内容都需要tsc 文件名重新编译太麻烦?
用tsc -w进行监听,文件改变便会自动重新编译!
想要一键编译文件内所有ts文件?跟着我做👇
- 在ts文件的同级文件夹下创建tsconfig.json配置文件(或者直接tsc --init自动生成)
- 有了配置文件后,在命令行直接输入tsc回车,编译器便会自动编译该文件夹下所有ts文件
那么配置文件是配置什么的呢?
tsconfig.json配置文件
include
"include": [
"./src/**/*"
]
编译目标,只有在目标内的文件才会被编译,如上配置了一个目录,* 代表任意文件,**代表任意目录
files
"files": [
"core.ts",
"sys.ts"
]
与include类似,设置编译目标,但过于繁琐,只有当文件较少时才可能使用
exclude
"exclude": [
"./src/hello/**/*"
]
不编译目标,在目标内的文件一律不编译
extends
"extends": "./configs/base"
继承另一个配置文件的配置
compilerOptions
"compilerOptions":{
}
编译器选项,配置编译器对文件如何进行处理,其内包含数个子选项:
target
"target": "ES3"
用来指定文件编译的ES版本( "ES3", "ES5", "ES6", "ES2015", "ES2016", "ES2017", "ES2018", "ES2019", "ES2020", "ES2021", "ES2022", "ESNext" ),其中ESNext代指最新版本
module
"module": "es2015"
指定要使用的模块化规范( "CommonJS", "AMD", "System", "UMD", "ES6", "ES2015", "ES2020", "ESNext", "None", "ES2022", "Node16", "NodeNext" )
lib
"lib": ["dom"]
指定项目中要使用的库,一般不需要设置
outDir
"outDir": "./dist"
指定编译后文件所在的目录
outFile
"outFile": "./dist/app.js"
将编译后的代码合并为一个文件
allowJs
"allowJs": false
是否对js文件进行编译,默认是false
checkJs
"checkJs": false
是否检查js代码是否符合ts语法规范,默认为false
removeComments
"removeComments": false
是否移除注释,默认为false
noEmit
"noEmit": false
不生成编译后的文件,默认为false
noEmitOnError
"noEmitOnError": false
当有错误时不生成编译后的文件,默认为false
alwaysStrict
"alwaysStrict": false
设置编译后的js文件是否开启严格模式,默认为false
noImplicitAny
"noImplicitAny": false
是否允许出现未定义类型而被默认设为any类型的变量,默认为false
noImplicitThis
"noImplicitThis": false
是否允许出现不明确类型的this,默认为false
strictNullChecks
"strictNullChecks": false
是否严格检查Null值,默认为false
strict
"strict": false
所有严格检查的总开关,默认为false