上一篇提到下了 tsc --init
指令之後會創建出一個 tsconfig.json 的檔案,這個檔案設定了你要如何編譯 TypeScript 的檔案,今天就來介紹一下如何設定。
點進去 tsconfig.json 之後會看到很~多選項:
(下面還有很多)
不過其實大部分的選項都不是非常的必要 XD,這邊介紹幾個比較常用到跟有趣的選項。
"target": "es5"
: 這個選項是在設定要編譯成哪一個版本的 JavaScript,目前預設的是 es5。"lib": []
: 當這個選項是被註解起來時,代表會有一些默認的設定,比如說如果上面的 target 設定成 es6 的話,就會默認可以使用 es6 才有的 Map(),也會默認所有的 DOM API等等,所以上述的東西都可以直接在 TypeScript 的檔案使用,但是如果把註解拿掉之後就必須得放要默認的內容比如說 es6
、dom
進去才會生效,所以總結,請保留它的註解 XD。"sourceMap": true
: 這個選項是在編譯之後會多一個 .map 的檔案,讓你能在瀏覽器的 Source 裡面同步看到 .ts 的檔案,而不只有編譯過後的 .js 檔,有助於在瀏覽器 debug 時選擇閱讀比較好閱讀的程式碼。"outDir": "./"
: 在比較大型的專案通常都會有 src 跟 dist 這兩種資料夾來管理檔案,src 裡面會放的是 .ts 檔案,dist 裡面放的是編譯過後的 .js 檔案。"outDir"
選項就是在設定編譯過後的 .js 檔要放去哪裡,這邊就能夠設定成 "outDir": "./dist"
。"rootDir": "./"
: 設定放 .ts 檔的根目錄,並且會確保 tsc
在編譯 .ts 檔到 "outDir"
選項指定的資料夾時的資料夾結構會跟 "rootDir"
一致。"removeComments": true
: 這個選項打開時,原本在 .ts 檔裡頭所有的註解都不會在編譯後的 .js 檔看到。"noEmitOnError": true
: 這個選項在沒有打開的時候,即使 .ts 檔有錯誤,但是只要執行 tsc
指令就還是會編譯成 .js 的檔案。但是如果把這個選項打開之後,只要有某一個 .ts 檔裡面有錯誤,所有的 .ts 檔通通都不會編譯成 .js 檔,必須先把錯誤處理好才行。以上簡單介紹了幾個 config 的選項,如果對其他選項有興趣的朋友可以到 TSConfig Reference 去瞧瞧~
第三天的學習筆記先到這邊,謝謝閱讀~