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