TypeScript 4.4beat版本發(fā)布,你知道了嗎?
本文轉載自微信公眾號「天天Up」,作者小弋 。轉載本文請聯(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會將變量轉化為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團隊為了考慮到效率,還是其他的原因,我們可以通過設置為默認值,也就是說,類似于--useUnknownInCatchVariables將默認類型切換成unknown。
比如下面代碼:
- // @useUnknownInCatchVariables: true
- try {
- // ...
- }
- catch (e) {
- e.toUpperCase(); // error
- }
或者,選擇一個更加廣泛的標志?
這些我們期待正式版本的到來,就能知道答案了。
那么你是不是想來試一試TS4.4測試版本的功能呢,我們可以借助這個TS中的Playground來體驗下:
playground
選擇對應的版本即可。
至于其他的更新以及優(yōu)化,比如更快的構建,會在構建上做優(yōu)化,讓開發(fā)體驗更佳。比如lib.d.ts的修改等等
更多的信息,趕緊去看看吧:
https://github.com/microsoft/TypeScript/issues/44237