#沒事去翻翻官網文檔,其實有很多用法是我們還不知道的,官方資料總是最權威的,也推薦大家無聊看看各個官網hhh,不一定是記憶,但在某種場景下我們或許能想到還有多一種解決方式#
noImplicitAny
當我們沒有表明類型時,默認就是any,該選項是用于控制隱式any類型的使用
- 當設置為
true
時,編譯器會禁止未顯式聲明類型的變量/參數隱式推斷為any
類型,并拋出錯誤 - 顯式聲明
any
(如let x: any
)仍被允許
// tsconfig.json配置示例
{"compilerOptions": {"noImplicitAny": true, // 開啟嚴格檢查"strict": true // 該選項會同時啟用noImplicitAll}
}
- 優點:提升代碼健壯性,減少類型相關運行時錯誤
- 缺點:增加類型聲明工作量,降低開發靈活性
strictNullChecks
用于控制空值檢查的核心編譯選項,主要影響null和undefined的類型處理邏輯
- ?關閉?(默認):
null
和undefined
可賦值給任意類型(視為所有類型的子類型) - ?開啟?:
null
和undefined
僅能賦值給自身類型、any
或顯式聯合類型(如string | null
)
{"compilerOptions": {"strictNullChecks": true,}
}
- 優點:減少空指針錯誤,提升代碼健壯性
- 缺點:需顯式處理邊界情況,增加類型聲明復雜度,降低開發靈活性