1. 編譯選項(xiàng)
1.1 自動(dòng)編譯文件
編譯文件時(shí),使用-w指令后,TS編譯器會(huì)自動(dòng)監(jiān)視文件的變化,并在文件發(fā)生變化時(shí)重新編譯。
-
示例
tsc xxx.ts -w
1.2 自動(dòng)編譯整個(gè)項(xiàng)目
如果直接使用tsc指令,就可以自動(dòng)將當(dāng)前項(xiàng)目下的所有ts文件編譯為js文件
-
但直接使用tsc指令的前提是,要在項(xiàng)目根目錄下創(chuàng)建一個(gè)ts的配置文件 tsconfig.json
tsc --init
如果直接執(zhí)行 tsc命令,只是一次性生成 所有的js文件
如果直接執(zhí)行 tsc -w 命令,它會(huì)生成所有的js文件,并且還會(huì)去監(jiān)視,只有對(duì)應(yīng)的文件發(fā)生變化,就會(huì)自動(dòng)去重新編譯生成
1.3 tsconfig.json文件
它是ts編譯器的配置文件,可以根據(jù)它的信息,對(duì)代碼進(jìn)行編譯。
1.3.1 外層屬性
-
include:用于指定哪些ts文件需要進(jìn)行編譯
- **:任意目錄
- *:任意文件
include:[ "./src/**/*" ]- 以上表示根目錄下的src目錄下的任意目錄的任意文件,需要進(jìn)行編譯
-
exclude:用于指定哪些ts文件不需要進(jìn)行編譯
- 默認(rèn)值:["node_modules","bower_components",‘jspm_packages“]
"exclude": ["./src/hello/*"], -
extends
定義被繼承的配置文件
"extends":"./configs/base"上述示例中,當(dāng)前配置文件中會(huì)自動(dòng)包含config目錄下base.json中的所有配置信息。
-
files:設(shè)置文件,設(shè)置哪些文件需要被編譯
files:[ "xxx.ts" ]
compilerOptions:是ts編譯器的選項(xiàng)
1.3.2 compilerOptions屬性
-
target:用來指定ts被編譯成ES的版本
默認(rèn)是es3
-
可選值
'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020',
-
module:指定哪種版本的模塊化
'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */給一個(gè)錯(cuò)誤的值,就可以看到可以支持哪些版本的模塊化
-
lib :用來指定項(xiàng)目中使用的庫(kù)
"lib": ["DOM"],比如上面的DOM,如果沒有指定,則不會(huì)使用Dom的相關(guān)方法【也就是document的相關(guān)方法和屬性】,也不會(huì)有任何的提示。
給定一個(gè)錯(cuò)誤的值,可以看到可以使用哪些庫(kù)
-
outDir:用于指定編譯后js文件的所在目錄
"outDir": "js",- 輸出到根目錄下的js目錄下【沒有這個(gè)目錄,會(huì)自動(dòng)創(chuàng)建】
-
outFile:將所有的全局作用域中的代碼合并懂同一個(gè)文件中
Only 'amd' and 'system' modules are supported alongside --outFile. allowJs:是否對(duì)js文件進(jìn)行編譯,默認(rèn)為false
checkJs:是否檢查js代碼是否符合語法規(guī)范
removeComments:是否移除注釋
noEmit:是否不生成編譯后的文件
noEmitOnError:當(dāng)有錯(cuò)誤時(shí)不生成編譯后的文件
-
alwaysStrict:用來設(shè)置編譯后的文件是否使用嚴(yán)格模式,默認(rèn)為false
當(dāng)有模塊化代碼的時(shí)候,默認(rèn)就有嚴(yán)格模式了。
noImplicitAny:不允許隱式any
noImplicitThis:不允許不明確類型的this,【默認(rèn)為true】
strictNullChecks:嚴(yán)格檢查空值
strict:所有嚴(yán)格模式的總開關(guān)