typescript--介紹ts

来源:https://www.cnblogs.com/ygjzs/archive/2020/01/19/12215372.html
-Advertisement-
Play Games

TypeScript 介紹 TypeScript 是什麼 TypeScript 是 JavaScript 的強類型版本。然後在編譯期去掉類型和特有語法,生成純粹的 JavaScript 代碼。由於最終在瀏覽器中運行的仍然是 JavaScript,所以 TypeScript 並不依賴於瀏覽器的支持,也 ...


TypeScript 介紹

TypeScript 是什麼

TypeScript 是 JavaScript 的強類型版本。然後在編譯期去掉類型和特有語法,生成純粹的 JavaScript 代碼。由於最終在瀏覽器中運行的仍然是 JavaScript,所以 TypeScript 並不依賴於瀏覽器的支持,也並不會帶來相容性問題。

TypeScript 是 JavaScript 的超集,這意味著他支持所有的 JavaScript 語法。併在此之上對 JavaScript 添加了一些擴展,如 class / interface / module 等。這樣會大大提升代碼的可閱讀性。

和 JavaScript 若類型不同,TypeScript 這種強類型語言最大的優勢在於靜態類型檢查,可以在代碼開發階段就預知一些低級錯誤的發生。

  • 一種類似於 JavaScript 的語言,在 JavaScript 的基礎之上增加了類型,同時增強了 JavaScript 部分語法功能
  • 遵循 EcmaScript 6 標準規範
  • 由微軟開發
  • Angular 2 框架採用 TypeScript 編寫
  • 背後有微軟和谷歌兩大公司的支持
  • TypeScript 可以編譯成 JavaScript 從而在支持 JavaScript 的環境中運行
  • TypeScript 和 JavaScript 的關係就好比 less 和 css 的關係

靜態類型和動態類型

靜態(static):無需運行,根據程式代碼就能確定結果。

動態(dynamic):只有運行才能確定結果。

類型:對某個數據所具有的性質進行的描述。如它的結構是怎樣的,能進行什麼操作。

靜態類型:數據擁有類型,且僅有數據擁有類型。

動態類型:數據擁有類型,存放數據的變數、表達式也擁有類型,且類型在編譯時是固定的。

下圖是靜態語言和動態語言的比較:

從表中可見,動態語言和靜態語言各有優劣,而TypeScript提供了靜態語言強類型支持,同時相容動態語言弱類型的語法,使用者根據項目需求自由選擇。

這種動靜結合的特性,目前還沒在其他語言見過。

Why TypeScript

  • 從 Angular 2 之後,官方推薦使用 TypeScript 作為開發 Angular 應用的首選語言

  • 遵循 EcmaScript 6
  • 強大的 IDE 支持
    • 類型檢查
    • 嚴謹的語法提示
  • 代碼重構
  • 可讀性良好

TypeScript 使用場景

  • 大型團隊開發
  • Angular 官推語言
  • 其它...

這裡引用知乎上一位開發者對使用推廣 TypeScript 的看法:

typescript絕對是好東西,不過推廣是有難度的:
1、TS是微軟製造,最好的開發工具是VS,想想有些人就激動了(什麼vi流,sublime流,macbook流,雖然也能寫ts,但你無法跟他們說用vs寫有多麼好);

2、即使你告訴他們TS有多好,但是幾十人的團隊里總有一半以上的人不想學新的東西(當然我沒有權利說不學新東西的人應該全部滾動,因為互聯網打工的是大爺,想跳槽隨便找工作);

3、JSer很多沒有學習OOP開發經驗(特別是從設計/頁面重構轉過來的);

4、很多人接觸TS前根本沒學過JS,經常有人問“使用TS如何寫元素拖拽”這樣的問題(那是DOM API好伐,不過你跟初學者很難解釋明白);

- 來源:知乎
- 鏈接:https://www.zhihu.com/question/21879449
- 作者:Fula Li

TypeScript 不僅僅用於開發 Angular 應用

https://www.typescriptlang.org/samples/index.html

  • React
  • Angular
  • Node.js
  • Vue.js
  • WeChat
  • ...

凡是可以寫 JavaScript 的都可以使用 TypeScript。

前置知識

  • EcmaScript 6
  • TypeScript 概念及關係
  • 具有一定的 JavaScript 開發經驗
  • 有 Java、C#、C++、C 等靜態類型語言使用經驗更佳

如何學習 TypeScript

  • 官方文檔為準
  • 閱讀別人的代碼
  • 由於 TypeScript 是相容 EcmaScript 6 的,所以在開發的時候不需要完全學會 TypeScript 再使用
  • 一個建議是有空就學,會了就用
  • 雖然相容 EcmaScript 6,但建議既然使用了 TypeScript 就讓你的 TypeScript 代碼更加 TypeScript,這樣才能發揮出 TypeScript 的威力。

相關鏈接


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python的駐留機制及為在同一運行空間內,當兩變數的值相同,則地址也相同。 舉例: 以上示例為駐留機制有效的情況下的記憶體地址。 以下為加入非數字、字母、下劃線內容的駐留機制驗證,結果為無效 ...
  • 在經常性讀取大量的數值文件時(比如深度學習訓練數據),可以考慮現將數據存儲為Numpy格式,然後直接使用Numpy去讀取,速度相比為轉化前快很多. 下麵就常用的保存數據到二進位文件和保存數據到文本文件進行介紹: 1.保存為二進位文件(.npy/.npz) numpy.save 保存一個數組到一個二進 ...
  • list list(列表)是Python內置的一種數據類型,它是一種有序、可變的集合,可以隨時添加和刪除其中的元素。 變數classmates就是一個list。關於list的操作如下: 方法 len():獲取list元素的個數 通過索引訪問 append:向list末尾追加元素 insert:把元素 ...
  • @ "TOC" JDK1.7:數組+鏈表 JDK1.8:數組+鏈表+紅黑樹 前五個問題環境用的是是JDK1.7,後面全部是1.8 1、Hash的計算規則? 簡單的說是個“擾動函數”,目的是為了使散列分佈的更加均勻。 具體演算法是用key的Hashcode值右移16位,將hashcode高位和低位的值進 ...
  •   Spark Streaming對實時數據流進行分析處理,源源不斷的從數據源接收數據切割成一個個時間間隔進行處理;    流處理與批處理有明顯區別,批處理中的數據有明顯的邊界、數據規模已知;而流處理數據流並沒有邊界,也未知數據規模;    ...
  • 函數 函數參數 參數及返回值類型 可選參數 預設參數 剩餘參數 箭頭函數 基本示例 for of 迴圈 for 迴圈 forEach 不支持 break for in 會把數組當作對象來遍歷 for of 支持 break 類型推斷(Type Inference) 類型相容性 模塊 概念 模塊通信: ...
  • 解構賦值 數組解構 上面的寫法等價於: 利用解構賦值交換變數: 函數參數解構: 解構剩餘參數: 也可以忽略其它參數: 或者跳過解構: 對象解構 示例一: 就像數組解構,你可以用沒有聲明的賦值: 你可以在對象里使用 語法創建剩餘變數: 屬性解構重命名 你也可以給屬性以不同的名字: 註意,這裡的冒號 不 ...
  • Hello World 新建 並寫入以下內容: 安裝編譯器: 編譯: 修改 文件中的代碼,為 greeter 函數的參數 person 加上類型聲明 : 重新編譯執行。 讓我們繼續修改: 重新編譯,你將看到如下錯誤: 介面(Interface) 類(Class) 變數聲明 作用域 重覆聲明 塊級作用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...