allowJs
取值為 true/fasle, 是否編譯 js 文件. 如果設(shè)置為 false, 當(dāng) ts 文件引入 js 文件時,不會檢查 js 內(nèi)返回的數(shù)據(jù)類型, 同時也不會把 js 文件編譯到 dist(編譯后的文件所在目錄) 文件夾內(nèi)
更詳細(xì)的理解見"關(guān)于類型聲明文件 .d.ts"這篇中的講解
// test.js
export funtion test(){
return 'from js!'
}
// ts文件
import { test } from './test.js'
const testJsString: number = test() // 當(dāng)allowJs設(shè)置為false時, testJsString設(shè)置為number類型也不會報錯
strictPropertyInitialization 嚴(yán)格屬性值初始化
這個配置是要求定義類的屬性時必須初始化賦值,在"strict": true 時自動設(shè)置為 true,這非常不合理,因為我們在 vue 中屬性的值經(jīng)常在 created/mounted 賦值, 所以可以設(shè)為 false
strictNullChecks
這個配置是嚴(yán)格的 null 檢查模式. 在"strictNullChecks": true模式下, null 和 undefined 值不包含在任何類型里, 但是我們在 vue 的 data 里面初始化變量時,經(jīng)常會初始化為 null, 因此我們將此配置設(shè)置為 false
// strictNullChecks:true時下面一行會報錯
let str: string = null