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
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...