微軟釋出了TypeScript 3.1候選版,這次更新了可映射的多元組(Tuple)和陣列類別,以及函式宣告屬性,另外,官方提到,雖然他們盡量避免在語言更新中加入重大變化,但在TypeScript 3.1開發者需要特別注意,廠商專用類別以及範圍縮限(Narrowing)函式有所變更。

TypeScript 3.1候選版中開始支援可映射多元組和陣列,微軟的作法是將TypeScript現存的可映射物件類別,使用在多元組和陣列中。微軟TypeScript專案經理Daniel Rosenwasser提到,現在迭代多元組和陣列只是執行了該有的正確動作,並非使用了一個全新的概念來映射多元組和陣列。

第二項更新函式宣告屬性,是用來減緩將程式碼搬遷到TypeScript上的不便,能解決命名空間相關的問題。由於之前命名空間無法與var、let或const宣告一起使用,讓像是無類型的React程式碼移植到TypeScript上,非常的麻煩,而現在微軟修改了類別檢查器,使其運作更加人性化,Daniel Rosenwasser表示,在TypeScript 3.1中,對於任何使用函數初始化的函數宣告或const宣告,類別檢查器將會分析包含的可視範圍,以追蹤任何新增的屬性。

TypeScript 3.1已做出了一些較大的變革,內建lib.d.ts的函式庫將不再支援廠商專用類別,TypeScript 3.1後的lib.d.ts和其他內建宣告函式庫,將完全使用WHATWG DOM規範的網頁IDL檔案產生,好處是lib.d.ts將更容易更新維護,要繼續使用廠商專用類別的開發者,需要增加額外宣告,否則將會讓應用程式無法支援特定瀏覽器。另外,範圍縮限(Narrowing)函式也進行了改變,現在typeof foo === "function"類別防護(Type Guard),在同時與{}、物件或無限制泛型一起使用時,可能會讓程式碼發生錯誤。

開發者可以直接在NuGet或是Npm中,取得TypeScript 3.1候選版本搶先試用,Visual Studio 2017的15.2或以上版本,以及Visual Studio 2015第三個更新版,已經開始支援,而TypeScript 3.1正式版將在本月稍晚時上線。


Advertisement

更多 iThome相關內容