TypeScript 4.0 发布
喜歡就關注我們吧!
整體看來,此版本在兼容性方面沒有特別大的變化。因為 TypeScript 團隊表示新版本繼續使用與過去版本相似的版本控制模型,可將 4.0 視作 3.9 的延續升級版本。
而且他們也一直在追求不犧牲主要靈活性的情況下,提供一個最大限度減少 breaking changes 的升級路徑。
4.0 版本的主要更新內容如下:
可變參數元組類型
標記的元組元素
構造函數的類屬性推斷
短路分配運算符
catch?子句中的unknown
定制 JSX 工廠
帶--noEmitOnError參數build模式下的速度提升
--incremental?with?--noEmit
編輯器改進
轉換為可選鏈接
支持/** @deprecated */
啟動時的部分編輯模式
更智能的自動導入
Breaking Changes
構造函數的類屬性推斷
當 noImplicitAny 被啟用時,TypeScript 4.0 現在可以使用控制流分(control flow analysis)析來確定類中的屬性類型。
如果并非將構造函數的所有路徑都分配給實例成員,則該屬性可能被視為undefined。
class Square {sideLength;constructor(sideLength: number) {if (Math.random()) {this.sideLength = sideLength;}}get area() {return this.sideLength ** 2;// ~~~~~~~~~~~~~~~// error! Object is possibly 'undefined'.} }在更清楚的情況下(例如具有某種initialize方法),如果位于strictPropertyInitialization中,可能會需要顯式類型注釋以及定值賦值斷言(!)
class Square {// definite assignment assertion// vsideLength!: number;// ^^^^^^^^// type annotationconstructor(sideLength: number) {this.initialize(sideLength)}initialize(sideLength: number) {this.sideLength = sideLength;}get area() {return this.sideLength ** 2;} }短路分配運算符
JavaScript 和其他很多語言都支持復合賦值運算符。復合賦值運算符將一個運算符應用到兩個參數上,然后將結果賦值到左邊。如下:
JavaScript 中的許多運算符都有一個對應的賦值運算符,但有三個例外:邏輯和(&&)、邏輯或(||),以及空值合并(??)。
TypeScript 4.0 為上述三個運算符增加了對應的賦值運算符支持:
let values: string[];// Before (values ?? (values = [])).push("hello");// After (values ??= []).push("hello");a ||= b;// actually equivalent toa || (a = b);▼??往期精彩回顧?▼
被盯上了?美國知名媒體 TechCrunch 關注中國建設獨立開源平臺 Gitee
以假亂真?加州伯克利分校的學生用 GPT-3 生成偽文章成功騙得 26000 訪問
2019 年 Dota2 比賽中,AI 戰勝世界冠軍的最強算法在這里!
開源≠免費!GNU 對自由軟件的定義:與免費無關
Flink-分布式的馮諾伊曼機器
? ? ? ? ? ? ? ? ??
覺得不錯,請點個在看呀
總結
以上是生活随笔為你收集整理的TypeScript 4.0 发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有docker,谈什么微服务架构?
- 下一篇: 从零开始内建你的安全测试流程