您好,登錄后才能下訂單哦!
小編給大家分享一下TypeScript 2.1有什么新特性,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
TypeScript是微軟開發(fā)的一個JavaScript的超集,提供了最新的JavaScript特性以及可選的靜態(tài)類型。近日,TypeScript 2.1發(fā)布。該版本提供了功能更為強大的類型檢查器,并且讓開發(fā)人員可以編寫出更簡潔的代碼。以下是該版本帶來的主要新特性:
Downlevel async/await:雖然之前的版本已經提供了async/await,但downlevel async/await讓開發(fā)人員可以在ES3/ES5環(huán)境里使用該特性。
Object Rest&Spread:這是ES2017的一項新提案,讓開發(fā)人員可以便捷地合并、拆解以及部分地復制對象。在使用類似Redux這樣的庫時,這一特性已經被廣泛地使用。Object Spread讓開發(fā)人員可以便捷地復制一個對象,如下所示:
let copy = { ...original };
類似地,我們可以合并多個不同的對象,如下所示,合并后的對象將同時具有foo、bar和baz的屬性:
let merged = { ...foo, ...bar, ...baz };
開發(fā)人員也可以在合并后的對象中添加新屬性。Object Rest是一個相對的過程,它可以排除特定的屬性,如下所示:
let { a, b, c, ...defghijklmnopqrstuvwxyz } = alphabet;
keyof和Lookup類型:實際上,keyof操作符被稱為“索引類型查詢(index type query)”,它就像一個查詢對象類型的鍵的查詢,如下所示:
interface Person { name: string; age: number; location: string; } let propName: keyof Person;
上述代碼也可以寫成如下形式:
let propName: "name" | "age" | "location";
而Lookup類型被稱為“索引訪問類型(indexed access types)”,它看上去像訪問一個元素,如下所示:
interface Person { name: string; age: number; location: string; } let a: Person["age"];
“映射類型(Mapped Types)”:這是TypeScript 2.1最令人感興趣的特性。假如我們有一個Person類型,如下所示:
interface Person { name: string; age: number; location: string; }
如果我們希望以此為基礎創(chuàng)建一個屬性全為布爾值的類型,那么我們需要定義一個全新的類型:
interface BooleanifiedPerson { name: boolean; age: boolean; location: boolean; }
而借助映射類型,我們可以將BooleanifiedPerson定義為:
type BooleanifiedPerson = { [P in "name" | "age" | "location"]: boolean };
借助keyof操作符,上述代碼還可以進一步簡化為:
type BooleanifiedPerson = { [P in keyof Person]: boolean };
Partial類型:讓開發(fā)人員可以創(chuàng)建現有類型的所有可選版本。此外,TypeScript 2.1還提供了Readonly、Record和Pick等實用類型,感興趣的讀者可以點擊這里查看它們的實現方式。
此外,TypeScript 2.1還放松了對程序包導入的檢查,只要用戶安裝了就可以使用,TypeScript將不會再因為找不到相關的聲明文件而提示錯誤。
感興趣的讀者可以通過NuGet獲取TypeScript,也可以通過npm進行安裝:
npm install -g typescript
Visual Studio 2015用戶需要首先升級到Update 3,再通過專門的安裝包進行安裝。Visual Studio Code或Sublime Text用戶也可以根據相關的說明使用最新版本的TypeScript。
看完了這篇文章,相信你對“TypeScript 2.1有什么新特性”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。