TypeScript 4.4beat版本發(fā)布,你知道了嗎?
本文轉(zhuǎn)載自微信公眾號「天天Up」,作者小弋 。轉(zhuǎn)載本文請聯(lián)系天天Up公眾號。
你好,我是小弋。
前不久TS發(fā)布4.4的beat版本:
發(fā)布說明
到底4.4的版本中有哪些features,我們可以參考下面的:
鏈接:https://github.com/microsoft/TypeScript/issues/44237
里面大致描述4.4版本發(fā)布的流程,預計8月底發(fā)布正式版本。
主要更新內(nèi)容:
- 提供針對 Aliased Conditions 的控制流分析 (Control Flow Analysis)
 - 增加 symbol 類型和模板字符串模式的索引簽名
 - Catch 語句中默認使用 unknown 類型 (--useUnknownInCatchVariables)
 - 新增 Exact Optional Property 類型 (--exactOptionalPropertyTypes)
 - 針對 tsc --help 的升級和改進
 - 性能改進
 - 添加針對 JavaScript 的拼寫建議
 - 新增實驗性的 Inlay 提示
 - 破壞性變更
 
比如,我們拿出一個例子來看。
Catch 語句中默認使用 unknown 類型
經(jīng)常寫JavaScript都知道,任何類型的值都可以通過throw拋出后,在catch語句中捕獲到,那么TypeScript中是如何做統(tǒng)一的呢,
其實經(jīng)常寫TS的都知道,很早的版本中,ts會將變量轉(zhuǎn)化為any:
- try {
 - // Who knows what this might throw...
 - executeSomeThirdPartyCode();
 - }
 - catch (err) { // err: any
 - console.error(err.message); // Allowed, because 'any'
 - err.thisWillProbablyFail(); // Allowed, because 'any' :(
 - }
 
但是,有時候我們知道unknown類型會是更加的選擇,所以我們可以在catch語句的時候使用unknown。
ts團隊為了考慮到效率,還是其他的原因,我們可以通過設(shè)置為默認值,也就是說,類似于--useUnknownInCatchVariables將默認類型切換成unknown。
比如下面代碼:
- // @useUnknownInCatchVariables: true
 - try {
 - // ...
 - }
 - catch (e) {
 - e.toUpperCase(); // error
 - }
 
或者,選擇一個更加廣泛的標志?
這些我們期待正式版本的到來,就能知道答案了。
那么你是不是想來試一試TS4.4測試版本的功能呢,我們可以借助這個TS中的Playground來體驗下:
playground
選擇對應(yīng)的版本即可。
至于其他的更新以及優(yōu)化,比如更快的構(gòu)建,會在構(gòu)建上做優(yōu)化,讓開發(fā)體驗更佳。比如lib.d.ts的修改等等
更多的信息,趕緊去看看吧:
https://github.com/microsoft/TypeScript/issues/44237


















 
 
 
















 
 
 
 