TypeScript 學習總結

来源:https://www.cnblogs.com/hechen-xuan/archive/2023/03/28/17264877.html
-Advertisement-
Play Games

TS:是JS的超集,即對JS的擴展,主要提供了類型系統和對ES6+的支持,但TS最終會轉換為js代碼去執行。 特點: 1. 始於JavaScript, 歸於JavaScript 2. 強大的類型系統 3. 先進的JavaScript | | TypeScript | JavaScript | | | ...


TS:是JS的超集,即對JS的擴展,主要提供了類型系統和對ES6+的支持,但TS最終會轉換為js代碼去執行。
特點:
1. 始於JavaScript, 歸於JavaScript
2. 強大的類型系統
3. 先進的JavaScript

TypeScript JavaScript
語言 面向對象編程語言 面向腳本編程
是否支持可選參數 支持 不支持
是否支持靜態類型 支持 不支持
是否支持介面 支持 不支持
基礎類型:
	1. boolean
	2. number
	3. String
	4. undefined和null(預設情況下null和undefined是所有類型的子類型)
	5. 數組
	6. 元組:表示一個已知元素數量和類型的數組,各元素的類型不必相同
	7. object:表示非原始類型,也就是除number、string、boolean之外的類型
	8. 枚舉:為一組數值賦予友好的名字
	9. any:不清楚類型的變數指定一個類型
	10. void
	11. 聯合類型(Union Types) (表示取值可以為多種類型中的一種)
	12. 類型斷言:可以用來手動指定一個值的類型。
	13. 類型推斷:TS會在沒有明確的指定類型的時候推測出一個類型,
		a. 定義變數時賦值了,推斷為對應的類型。
		b. 定義變數時沒有賦值,推斷為any類型。
類:
	1. 繼承: 類從基類中繼承了屬性和方法,通過 extends 實現。
	2. 修飾符: public(預設)、private(不能在聲明它的類的外部訪問)、protected(子類可以訪問)。
	3. 存取器: TypeScript支持通過getters/setters來截取對對象成員的訪問,它能幫助你有效的控制對對象成員的訪問。
	4. 靜態屬性:靜態屬性:是類對象的屬性;非靜態屬性:是類的實例對象的屬性。
	5. 抽象類: 不能被實例化,用abstract修飾。
介面:

(介面是對象的狀態(屬性)和行為(方法)的抽象(描述))核心原則之一是對值所具有的結構進行類類檢查。

	1. readonly VS const: 判斷該用readonly還是const的方法是看要把它作為變數使用還是作為一個屬性。作為變數使用的話用const,若作為屬性則使用readonly。

	2.類類型:實現介面
		一個類可以實現多個介面
		一個介面可以繼承多個介面
	3. 介面也可以相互繼承
		#函數類型
泛型:
指在定義函數、介面或類的時候,不預先指定具體的類型,而在使用的時候再指定具體類型的一種特性。
重載:
	函數名相同,而形參不同的多個函數。
	在JS中,由於弱類型的特點和形參與實參可以不匹配,是沒有函數重載這一說的,
	但在TS中,與其它面向對象的語言(如Java)就存在此語法。
什麼是構造函數,其作用:
構造函數是一種特殊的方法,主要用於創建對象時初始化對象,即給對象成員屬性賦值。和new關鍵字一起使用,而TS的構造函數通過關鍵字constructor實現,並用this關鍵字來訪問當前類中的屬性和方法。
為什麼要用TS:
1. TS在編譯時就可以暴露問題,而JS則在運行時才可以發現。
2. TS作為一種強類型,明確知道數據類型,代碼的可讀性高,便於理解。
什麼是泛型:
在定義時不去指定類型,等使用時才去指定。
什麼是實例化:
一般創建一個類後並不能直接對屬性和方法進行訪問,必須對類進行實例化,需要創建一個對象。創建對象通過new關鍵字來實現,通過‘.’來訪問屬性和方法。
什麼是方法重寫:
子類可以直接繼承父類的方法,直接使用,但有時子類並不想原封不動的繼承父類中的方法,而是需要做一定的修改,就是重寫。重寫的作用在於子類可以根據需要定義自己的特定行為,即子類能夠根據需要實現父類方法。
什麼是可索引類型介面:
一般用來約束數組和對象
never和void的區別:
void表示沒有任何類型(可以賦值為null和undefined);
never表示不包含任何值,永遠沒有值;
void返回值類型的函數可以正常運行,而never的則無法執行,也無法終止,會拋出異常。

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

-Advertisement-
Play Games
更多相關文章
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 背景 項目當中如果做新增/修改/刪除等等操作通常情況下都需要刷新數據或者刷新當前頁面. 思路 (1)如果頁面簡單,調用介面刷新數據即可. (2)如果頁面複雜,需要調用多個介面或者通知多個子組件做刷新,可以採用刷新當前頁面的方式 下麵整理了 ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi ...
  • Admin.NET 是一套基於Furion/.NET 6實現的通用管理平臺,模塊插件式開發,框架包含了常規的許可權管理、字典等管理模塊,以及一些Vue3的Demo案例,框架前後端分離。後端基於基於Furion/.NET 6實現,底層集成SqlSugar;前端則是採用Vue-Next-Admin的前端框... ...
  • Element UI 是一套基於 Vue.js 的組件庫,它提供了一系列常用的 UI 組件,包括表單、彈窗、佈局、導航等等。Element UI 的設計風格簡潔、易用、美觀,且易於定製。 Element UI 的主要特點包括: 基於 Vue.js 開發,組件易於使用和定製。 提供了豐富的 UI 組件 ...
  • 配置開發環境 腳手架工具create-react-app 儲備知識:終端或命令行、代碼編輯器 React官方中文文檔 create-react-app 其是基於Node的快速搭建React項目的腳手架工具。 npx create-react-app testdemo cd testdemo npm ...
  • 其他章節請看: webgl 系列 著色器語言 本篇開始學習著色器語言 —— GLSL全稱是 Graphics Library Shader Language (圖形庫著色器語言) GLSL 是一門獨立的語言,和其他語言一樣有自己的變數、運算符、函數、迴圈(for)、控制語句(if)、函數、數組等等。 ...
  • 本博文介紹HTML中的表單標簽,包含form表單域、input輸入表單、label標簽、select下拉表單和textarea文本域。 ...
  • ECMAScript(簡稱 ES)是一種由 Ecma 國際組織定義的腳本語言標準,它定義了 JavaScript 語言的基本規範和特性。JavaScript 是一種基於 ECMAScript 標準的編程語言,因此 ECMAScript 對於 JavaScript 開發來說非常重要。 ECMAScri ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...