溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TypeScript 2.0有什么改進(jìn)

發(fā)布時(shí)間:2021-12-16 10:26:16 來源:億速云 閱讀:121 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹TypeScript 2.0有什么改進(jìn),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

微軟最近發(fā)布了TypeScript 2.0,該版本提供了簡(jiǎn)化的聲明文件獲取、Non-nullable類型,以及Readonly修飾符。

TypeScript項(xiàng)目經(jīng)理Daniel Rosenwasser稱,他們團(tuán)隊(duì)對(duì)于該版本“緊隨ECMAScript規(guī)范,為JavaScript庫和工具提供了更廣泛的支持,并通過一個(gè)語言服務(wù)在各大編輯器中提供了一流的編輯體驗(yàn)”感到極為“興奮”。

TypeScript 2.0使得開發(fā)者可以更容易地獲取并使用聲明文件。Rosenwasser承認(rèn)“學(xué)習(xí)如何獲取和管理聲明文件的依賴性”過去一直是用戶最頭疼的問題,但在2.0版中通過npm install --save @types/lodash命令即可安裝范圍包@types/lodash,隨后當(dāng)開發(fā)者的程序中任何位置導(dǎo)入Lodash后,TypeScript 2.0將能自動(dòng)引用。

Non-nullable類型是2.0版引入的另一個(gè)新功能。雖然該語言最初的設(shè)想是所有類型始終為Nullable的,但實(shí)際上該團(tuán)隊(duì)也發(fā)現(xiàn),這樣的設(shè)計(jì)并不能預(yù)防null/undefined問題。在此次發(fā)布的新版中,nullundefined均有自己的類型,借此開發(fā)者可以明確表示何時(shí)可接受null/undefined值。下列視頻展示了TypeScript的這一特性。

插入一個(gè)視頻:https://msdnshared.blob.core.windows.net/media/2016/09/nonnullable-types-fade.mp4

TypeScript 2.0中的屬性可聲明為只讀的,隨后所有不包含Set-accessor的Get-accessor均會(huì)被視作只讀的。

class Person {
    readonly name: string;

    constructor(name: string) {
        if (name.length < 1) {
            throw new Error("Empty name!");
        }

        this.name = name;
    }
}

// Error! 'name' is read-only.
new Person("Daniel").name = "Dan";

整個(gè)社區(qū)對(duì)微軟此次發(fā)布的新版給予極高評(píng)價(jià)。Ed Rochenski在HackerNews報(bào)道中表達(dá)了自己的意見:

我已經(jīng)迫不及待想要在我們的生產(chǎn)應(yīng)用中使用這些新功能了。TypeScript一直是我步入JavaScript開發(fā)的橋梁,IMHO JavaScript早已被廢棄,真不知道如果沒有TypeScript的話我能否繼續(xù)堅(jiān)持使用JavaScript來開發(fā)。

Non-nullable類型、可加標(biāo)簽的Union類型,以及更簡(jiǎn)單的聲明文件,這些是新版中最讓我激動(dòng)的功能。

在Rosenwasser的博客文章中,用戶Allen通過評(píng)論問到:“我很想在自己的代碼庫中使用strictNullChecks,但能否通過什么方法讓某些/全部庫類型定義繼續(xù)使用lax null檢查?”據(jù)稱他在配合外部類型定義使用strictNullChecks時(shí)遇到了問題,因?yàn)樗脦斓念愋投x并非嚴(yán)格Null safe的。

Rosenwasser回應(yīng)稱:“目前需要針對(duì)strictNullChecks創(chuàng)建依賴項(xiàng),雖然很多第三方.d.ts文件不受影響可以繼續(xù)使用,但如果遇到問題,可以隨時(shí)向types-2.0分支的DefinitelyTyped發(fā)送Pull請(qǐng)求?!?/p>

根據(jù)路線圖的介紹,TypeScript還支持ES8對(duì)象屬性的Spread和Rest,以及函數(shù)表達(dá)式/箭頭函數(shù)的裝飾器(Decorator),并可支持節(jié)點(diǎn)注冊(cè)鉤子。自TypeScript 1.8以來完整的改進(jìn)和變更清單可訪問該項(xiàng)目的GitHub頁面。

以上是“TypeScript 2.0有什么改進(jìn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI