日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TypeScript 4.0 发布

發布時間:2023/12/4 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)析來確定類中的屬性類型。

class Square {// Previously: implicit any!// Now: inferred to `number`!area;sideLength;constructor(sideLength: number) {this.sideLength = sideLength;this.area = sideLength ** 2;} }

如果并非將構造函數的所有路徑都分配給實例成員,則該屬性可能被視為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 和其他很多語言都支持復合賦值運算符。復合賦值運算符將一個運算符應用到兩個參數上,然后將結果賦值到左邊。如下:

/ Addition // a = a + b a += b;// Subtraction // a = a - b a -= b;// Multiplication // a = a * b a *= b;// Division // a = a / b a /= b;// Exponentiation // a = a ** b a **= b;// Left Bit Shift // a = a << b a <<= b;

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 发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。