tsc --init 會生成一個 tsconfig.json 的配置文件,tsc 沒法用需要全局安裝 typescript。這個文件是對 ts 的編譯配置文件。我們新建一個文件夾,生成 tsconfig.json,將
"removeComments": true,
這個配置放開,在編譯的時候,把注釋去掉。
demo.ts
const tt: string = 'hahah'; // this is a ts val
然后執行 tsc demo.ts,生成的 demo.js 中並未把注釋去掉。也就是說用 tsc 直接指定某一個文件的時候,並不會用到 tsconfig.json。只有直接運行 tsc, 后面不帶任何文件,他才會去執行 tsconfig.json
tsc 運行的原理是,這個命令敲下的時候,會先去讀配置文件,什么都沒有,默認編譯根目錄下所有的 ts 文件
如果根目錄有多個文件,而我想只編譯其中一個文件,但是又要使用到 tsconfig 怎么弄,這個需要在 tsconfig 里面配置路徑,加上配置 include
{ "include": ["./demo1.ts"], "compilerOptions": {} }
除了可以寫 include 之外,還可以寫 exclude,不編譯某些文件
{ "exclude": ["./demo1.ts"], "compilerOptions": {} }
這里只不編譯 demo1.ts
ts-node demo.ts 會去讀 tsconfig 的配置項
這個文件可以看到各種配置的解釋
這里的include,還可以寫成 files,里面還可以用正則表示
除了 include,exclude,接下來就是 compilerOptions 這個文件里面的配置項,這個配置項里面有很多的配置項。這個下面指的就是編譯過程中的配置
"removeComments": true, // 編譯過程中注釋去掉 "strict": true, // 表示他后面的配置項默認都為 true "noImplicitAny": true, // 不明確的 any 類型必須加類型注解 "strictNullChecks": true, // 是否強制校驗 Null,比如 const ss: string = null; 會報錯,如果是 false 不報錯 "rootDir": "./src", // 要編譯的文件夾 "outDir": "./build", // 把編譯好的文件夾放置到 build 文件夾中 "incremental": true, // 之前編譯過的內容不在編譯,只編譯新增的內容 // incremental 打開后編譯后會生成 tsconfig.tsbuildinfo,下次編譯會去做比對,有不同的地方再進行編譯 "allowJs": true, // 是否允許編譯 js 代碼,比如 es6 代碼 "checkJs": true, // 對 js 語法進行檢測,比如 js 語法寫錯了 "sourceMap": true, // 打包完生成 .js.map 文件 "noUnusedLocals": true, // 沒有使用到的變量會提示 "noUnusedParameters": true, // 函數里面沒有用到的參數會提示