TypeScript 概述

2021-12-10 16:25 更新

JavaScript是作為客戶(hù)端的語(yǔ)言引入的。 Node.js的發(fā)展標(biāo)志著JavaScript作為一種新興的服務(wù)器端技術(shù)。然而,隨著JavaScript代碼的增長(zhǎng),它往往會(huì)變得更加混亂,從而難以保持和重用代碼。此外,它沒(méi)有采用Object Orientation(面向?qū)ο螅?,?qiáng)類(lèi)型檢查和編譯時(shí)錯(cuò)誤檢查的功能,這使得JavaScript無(wú)法在企業(yè)級(jí)成功實(shí)現(xiàn)為一種成熟的服務(wù)器端技術(shù)。 TypeScript的出現(xiàn)彌補(bǔ)了這一差距。

什么是TypeScript?

根據(jù)定義,“TypeScript是用于應(yīng)用程序規(guī)模開(kāi)發(fā)的JavaScript?!?

TypeScript是強(qiáng)類(lèi)型,面向?qū)ο蟮木幾g語(yǔ)言。它是由微軟的Anders Hejlsberg(C#的設(shè)計(jì)者)設(shè)計(jì)的。TypeScript既是一種語(yǔ)言又是一組工具。TypeScript是編譯為JavaScript的JavaScript的類(lèi)型超集。換句話(huà)說(shuō),TypeScript是JavaScript加上一些額外的功能。

TypeScript圖

TypeScript的特點(diǎn)

TypeScript僅僅是JavaScript。TypeScript以JavaScript開(kāi)始,并以JavaScript結(jié)束。Typescript從JavaScript中采用程序的基本構(gòu)建塊。因此,你只需要知道JavaScript即可使用TypeScript。所有TypeScript代碼都轉(zhuǎn)換為它的JavaScript等效代碼。

TypeScript支持其他JS庫(kù)。可以從任何JavaScript代碼中使用編譯的TypeScript。TypeScript生成的JavaScript可以復(fù)用所有現(xiàn)有的JavaScript框架,工具和庫(kù)。

JavaScript是TypeScript。這意味著,任何有效的.js文件可以被重新命名為.ts并使用其他TypeScript編譯器進(jìn)行編譯。

TypeScript是可移植的。TypeScript可跨瀏覽器,設(shè)備和操作系統(tǒng)的移植。它可以在運(yùn)行JavaScript的任何環(huán)境中運(yùn)行。與它的對(duì)應(yīng)程序不同,TypeScript不需要專(zhuān)用的VM(虛擬機(jī))或特定運(yùn)行時(shí)環(huán)境來(lái)執(zhí)行。

TypeScript和ECMAScript

ECMAScript規(guī)范是腳本語(yǔ)言的標(biāo)準(zhǔn)化規(guī)范。已發(fā)布六個(gè)版本的ECMA-262。該標(biāo)準(zhǔn)的第6版代號(hào)為“Harmony”。TypeScript與ECMAScript6規(guī)范一致。

TypeScript和ECMAScript

TypeScript采用ECMAScript5規(guī)范的基本語(yǔ)言功能,即JavaScript的官方規(guī)范。TypeScript的語(yǔ)言功能,如Modules(模塊)和基于類(lèi)的取向符合ECMAScript 6規(guī)范。此外,TypeScript還包含泛型和類(lèi)型注釋等功能,這些功能不屬于EcmaScript6規(guī)范的一部分。

為什么要使用TypeScript?

TypeScript以擴(kuò)展JavaScript的方式優(yōu)于其他類(lèi)似CoffeeScript和Dart的編程語(yǔ)言。相比之下,像Dart和CoffeeScript這樣的語(yǔ)言本身就是新語(yǔ)言,需要特定于語(yǔ)言的執(zhí)行環(huán)境。

TypeScript的好處包括:

  • 編譯 - JavaScript是一種解釋語(yǔ)言。因此,需要運(yùn)行它來(lái)測(cè)試它是否有效。這意味著您編寫(xiě)所有代碼時(shí)修需要一遍遍運(yùn)行來(lái)測(cè)試輸出,以防出現(xiàn)錯(cuò)誤。因此,你必須花時(shí)間來(lái)嘗試找到代碼中的錯(cuò)誤。TypeScript轉(zhuǎn)換器提供錯(cuò)誤檢查功能。 如果發(fā)現(xiàn)某種語(yǔ)法錯(cuò)誤,TypeScript將編譯代碼并生成編譯錯(cuò)誤。這有助于在腳本運(yùn)行之前突出顯示錯(cuò)誤。

  • 強(qiáng)靜態(tài)類(lèi)型 - JavaScript不是強(qiáng)類(lèi)型。TypeScript通過(guò)TLS(TypeScript Language Service,TypeScript語(yǔ)言服務(wù))提供可選的靜態(tài)類(lèi)型和類(lèi)型推論系統(tǒng)。TLS基于其值可以推論出沒(méi)有類(lèi)型聲明的變量的類(lèi)型。

  • TypeScript支持現(xiàn)有JavaScript庫(kù)的類(lèi)型定義。TypeScript定義文件(擴(kuò)展名為.d.ts)提供外部JavaScript庫(kù)的定義。因此,TypeScript代碼可以包含這些庫(kù)。

  • TypeScript支持Object Oriented Programming(面向?qū)ο缶幊?/strong>)的概念,如類(lèi),接口,繼承等。

TypeScript的組成部分

從本質(zhì)上講,TypeScript有以下三個(gè)組成部分:

  • 語(yǔ)言 - 它包括語(yǔ)法,關(guān)鍵字和類(lèi)型注釋。

  • TypeScript編譯器 - TypeScript編譯器(TSC)將使用TypeScript編寫(xiě)的指令轉(zhuǎn)換為其等效的JavaScript。

  • TypeScript語(yǔ)言服務(wù) - “語(yǔ)言服務(wù)”在核心編譯管道周?chē)_(kāi)了一個(gè)額外的層,它是類(lèi)似編輯器的應(yīng)用程序。語(yǔ)言服務(wù)支持常見(jiàn)的編輯器操作集,如語(yǔ)句完成,簽名幫助,代碼格式化和大綱,著色等。

TypeScript組件

聲明文件

當(dāng)編譯一個(gè)TypeScript腳本時(shí),可以選擇生成一個(gè)聲明文件 (擴(kuò)展名為.d.ts),該文件可用作編譯JavaScript中組件的接口。聲明文件的概念類(lèi)似于C / C ++中頭文件的概念。聲明文件(擴(kuò)展名為.d.ts的文件)為支持JavaScript庫(kù)(如jQuery,MooTools等)的類(lèi)型,函數(shù)調(diào)用和變量提供了智能感知。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)