TypeScript 2.7 版本发布
TypeScript 2.7版本已經(jīng)發(fā)布了,新增了幾個主要功能特性并進行了一些bug的修正。其中一些亮點包括對類屬性的賦值檢查、固定長度的元組和改進對象文字的類型推斷。總的來說,這個版本對類型系統(tǒng)、ES2015+特性和總體的TypeScript開發(fā)者體驗都進行了改進優(yōu)化。
TypeScript 2.7版本引入了一些突破性的改變,開發(fā)人員在升級代碼庫以使用TypeScript 2.7時,應(yīng)該知曉這些變化。
當(dāng)被問及TypeScript目前的版本規(guī)劃時,項目經(jīng)理Daniel Rosenwasser說:
我認為,從最廣泛的意義上來說,我們關(guān)注的是易用性,并確保我們現(xiàn)有的用戶繼續(xù)在TypeScript上的投入是有價值的。前者通常是減少在起步時的學(xué)習(xí)成本,后者通常關(guān)注的是表現(xiàn)性及安全性。
例如,現(xiàn)有的TypeScript用戶要求對類初始化進行更嚴格的檢查。繼TypeScript 2.6版添加了嚴格的函數(shù)類型檢查之后,2.7版本又添加了在類中使用strictPropertyInitialization標志的嚴格屬性初始化檢查。這個標志會檢查類的每個實例的屬性,確定它是在類的構(gòu)造方法里被初始化的,還是通過屬性初始化程序初始化的。當(dāng)升級到2.7后,使用嚴格標記的開發(fā)人員將會自動地在他們的源代碼中獲得這個額外的檢查。建議在TypeScript中使用這一嚴格的標記,因為它可以幫助開發(fā)人員找到并消除其他類型的錯誤或異常行為。
明確的賦值斷言功能也已經(jīng)可用了,即使在TypeScript分析器不能確認賦值時,也可以指示TypeScript的控制流分析器始終認定一個明確已賦值的。
TypeScript的設(shè)計師之一Anders Hejlsberg表示,版本還改進了對對象字面量的類型推斷:
改進在相同上下文中出現(xiàn)的多個對象字面量的類型推斷。當(dāng)多個對象字面量類型組成一個union類型時,我們將對象字面量類型規(guī)范化,這樣所有的屬性就會出現(xiàn)在union類型的每個組成部分中。
const obj = test ? { text: "hello" } : {};// { text: string } | { text?: undefined } const s = obj.text; // string | undefined
第一行我們推斷出obj的類型{},第二行隨后導(dǎo)致了錯誤,因為obj似乎沒有屬性。這顯然并不是理想的效果。
其他語言級別的改進包括改進union類型和instanceof表達式中結(jié)構(gòu)相同類的處理方法,以及從操作符中推斷出更好的類型保護。
TypeScript 2.7也對ES2015+符號進行了改善支持。屬性可以使用const聲明的符號來命名,可以在接口、類或類型文字中將Identifier或PropertyAccessExpression用作計算屬性名稱的一部分。
改進了與CommonJS模塊的互操作性,支持 import d from “cjs”,并使用了esModuleInterop標志。在內(nèi)部,TypeScript利用了CJS模塊的ES模塊。Rosenwasser向InfoQ解釋了這項功能背后的動機:
我們知道在模塊互操作性策略中存在一些不友好性,這使得一些用戶更難以掌握TypeScript。對于新TypeScript用戶來說,這是一個障礙,這也是為什么我們要在這個版本中提高esModuleInterop標記優(yōu)先級的原因。當(dāng)然,我們也有參與對ECMAScript標準的更新,并且在發(fā)展我們語言時也非常注意吸收這些標準。
第三階段的數(shù)字分隔符提議,預(yù)計將作為ES2018的一部分,現(xiàn)在已經(jīng)包含在TypeScript中,幫助TypeScript保持當(dāng)前對JavaScript語言的年度更新。
在TypeScript 2.7中,有一些改進是針對開發(fā)人員使用體驗的。像webpack和Gulp這樣的開發(fā)工具將從新的增量構(gòu)建編譯器API中受益。這一變化將使工具更容易地進行因更新代碼帶來的資源更新,而不是需要在每次增量更新中重新構(gòu)建整個項目。此外,ide還提供了一個更新的TypeScript語言服務(wù)API,允許開發(fā)人員自動修復(fù)文件中所有已明確的問題。
TypeScript 2.7可以通過npm的npm install -g typescript命令進行安裝,或通過GitHub獲得。TypeScript 2.8開發(fā)工作已經(jīng)在進行中,預(yù)計將于3月下旬發(fā)布。
原文地址:http://www.infoq.com/cn/news/2018/02/typescript-2-7-released
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的TypeScript 2.7 版本发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Docker分分钟启动常用应用
- 下一篇: Azure Functions + Az