微軟的TypeScript 2.6已經到了發布候選階段,新發布的JavaScript特性改進增加了嚴格性,以幫助開發人員更好的發現錯誤。
TypeScript 2.6引入了一個“嚴格”模式標記,被識別為strictFunctionTypes。在這個嚴格模式下,任何不源自方法的函數類型都會具有比較“contravariantly”的參數。
TypeScript傳統上以“雙變量”的方式比較參數,允許使用更簡單的模型來處理數組。TypeScript 2.6對所有的函數類型(除方法)都增加了嚴格度,同時允許TypeScript繼續建模用例,包括事件處理程序和更簡單的數組處理。
截止到今年的10月1日,TypeScript就已經5歲了。隨著TypeScript最近Angular JavaScript框架的重寫,功能也逐漸完善。TypeScript的2.5版本在今天8月下旬發布,主要以提取方法和功能重構為特色。詳見文章《三大新改進,TypeScript 2.5你用了嗎?》。
TypeScript 2.6版本的其他新功能還包括通過// @ts-ignore注釋引入的錯誤抑制注釋。微軟已避免TypeScript中的錯誤抑制,因為在大多數情況下,用戶可以通過更準確的聲明文件或使用類型斷言來解決。
此外,為克服遺留代碼中的類型檢查,一些大型組織會同時更新項目依賴關系。引入類型檢查錯誤的任何更改都需要修復,這樣才能避免破壞構建。
新版本中的模板字符串出初始調用后被緩存,這個優化使得TypeScript與JavaScript的ECMAScript修訂的規范更加接近。通過這次修訂,開發人員可以使用lit-html和hyperHTML等庫。
對于此次的優化,微軟還表示TypeScript 2.6還有幾個隱藏細節的改變,在lib.d中對DOM聲明做出更改、write-only引用今后在noUnusedLocals和noUnusedParameters中不再被使用。