溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TypeScript是什么

發布時間:2021-12-09 13:17:38 來源:億速云 閱讀:241 作者:柒染 欄目:開發技術

TypeScript是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

前言:

TypeScriptJavaScript的超集,它可以編譯成純JavaScript代碼。

那為什么會出現TypeScript這門語言,主要是因為現在的JavaScript可以開發很多復雜的項目,但是JavaScript又缺乏其可靠性,在使用的時候需要我們為了代碼的健壯性需要添加很多業務邏輯去判斷。

TypeScript可以運行在瀏覽器環境、Node.js環境或者ECMAScript3或者更高的JavaScript的引擎中。

1.JavaScript的問題

JavaScript的問題主要有如下幾個:

JavaScript的類型異常只有在運行的時候才可以發現。

因為JavaScript的函數的類型是不明確的,有可能導致函數的最終功能導致出現問題,

如下這段代碼:

function sum(x, y){
  return x + y
}
sum(100, '100') // 100100

2.TypeScript的優勢

  • JavaScript是動態類型的編程語言,所謂的動態類型,就是在編譯時候時候才知道其數據類型是Number 還是String;而TypeScript是靜態類型的編程語言,所謂的靜態類型就是編寫的時候就知道其數據類型是什么,比例定義一個變量

let num: number = 6;

num這個變量從頭到尾只能是number類型,如果將字符串賦值給他就會拋出異常。

所以說,TypeScript的優勢如下:

  • 在開發過程中,就可以定位的錯誤的地方,方便我們檢查錯誤。

  • TypeScript屬于漸進式的編程語言,如果不懂其語法可以完全將其當做JavaScript來用。

  • 減少了我們在開發過程中的不必要的類型檢查。

  • 靜態類型的代碼提示是要優于靜態類型代碼提示的。

  • 在進行項目重構的時候會更加簡單。

  • 靜態類型的代碼語義化比動態類型更好,可讀性更好。

3.TypeScript的缺點

TypeScript并不是只有優點,沒有缺點的,它的缺點都是相對于JavaScript來說,

具體如下幾點:

  • 相對于JavaScript來說,TypeScript本身增加了許多的概念。例如泛型、接口等概念。

  • 使用TypeScript開發在短期內會增加一些成本,但是對于一個需要長期維護的項目,TypeScript能夠減少其維護成本。

  • 可能和一些庫結合的不是很完美。

4.TypeScript的運行環境

TypeScript是運行是建立在Node.js環境基礎之上的,所以需要先安裝一下Node.js。

安裝Node.js等一系列操作以忽略

安裝TypeScript的命令如下:

npm install -g typescript@3.6.4

這里我通過@指定版本號,也可以不指定版本號

安裝完TypeScript后,還需要安裝一個ts-node的工具,如果安裝該工具話是不能直接運行TS代碼的,需要將TS的代碼編成JavaScript后才能執行。

執行流程如下:

# 編譯 TS 代碼
tsc demo.ts 
# 編譯后會得到 demo.js 文件,然后就可以運行了

如果安裝了node-ts工具后,就可以直接執行TS代碼了。

具體步驟如下:

# 1. 全局安裝 
npm install -g ts-node@8.4.1
# 2. 運行代碼
ts-node demo.ts

值得注意的是安裝之后的目錄一定需要在環境變量中,不然會報錯的。

5.作用域問題

我們在項目中執行ts文件時,如果不同文件中存在相同的變量名是會拋出異常的 ,

示例代碼如下:

a.ts

let str: string = 'Hello World'
b.ts

let str: string = '一碗周'

此時就會拋出一個異常,即無法重新聲明塊范圍變量“str”,如果編輯器是VScode的話,鼠標懸停到變量名會進行提示。

解決這個問題的方式有兩種,第一種是為每個文件創建一個立即執行函數(即匿名函數),保證每個文件都擁有單獨的作用域。

示例代碼如下:

(function() {
  let str: string = '一碗周'
}){}

第二種方式是使用export將當前文件作為模塊導出。示例代碼如下:

let str: string = '一碗周'

export {}

關于TypeScript是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女