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
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...