TS编译选项

120 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天

TS编译选项

每次更改内容都需要tsc 文件名重新编译太麻烦?

tsc -w进行监听,文件改变便会自动重新编译!

想要一键编译文件内所有ts文件?跟着我做👇

  1. 在ts文件的同级文件夹下创建tsconfig.json配置文件(或者直接tsc --init自动生成)
  2. 有了配置文件后,在命令行直接输入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