【TS】Typescript 的類

TypeScript 是 JavaScript 的一個超集,它添加了可選的靜態類型和基于類的面向對象編程。在 TypeScript 中,類是一種模板,用于創建對象。通過類,你可以封裝對象的屬性(數據)和方法(函數)。TypeScript 的類與 JavaScript ES6+ 中的類非常相似,但增加了類型安全特性。

定義一個類

在 TypeScript 中,你可以使用 class 關鍵字來定義一個類。以下是一個簡單的例子:

class Greeter {greeting: string;constructor(message: string) {this.greeting = message;}greet() {return "Hello, " + this.greeting;}
}let greeter = new Greeter("world");
console.log(greeter.greet());  // 輸出: Hello, world

在這個例子中,Greeter 是一個類,它有一個屬性 greeting 和一個構造函數,構造函數接收一個字符串參數并將其賦值給 greeting 屬性。greet 方法是一個實例方法,它返回一個包含問候語的字符串。

訪問修飾符

TypeScript 支持三種訪問修飾符:publicprotectedprivate,它們用于控制類成員(屬性和方法)的訪問權限。

  • public(默認):任何地方都可以訪問。
  • protected:只能被類本身及其子類訪問。
  • private:只能被類本身訪問。

繼承

TypeScript 支持類的繼承,允許你基于一個類來創建另一個類。子類繼承父類的屬性和方法,并可以添加新的屬性和方法或覆蓋父類的方法。

class Animal {name: string;constructor(theName: string) { this.name = theName; }move(distanceInMeters: number = 0) {console.log(`${this.name} moved ${distanceInMeters}m.`);}
}class Dog extends Animal {bark() {console.log(`${this.name} says Woof!`);}
}const myDog = new Dog("Buddy");
myDog.move(5);
myDog.bark();  // 輸出: Buddy moved 5m. 和 Buddy says Woof!

在這個例子中,Dog 類繼承自 Animal 類,并添加了一個新的 bark 方法。

靜態屬性和方法

靜態成員(屬性和方法)屬于類本身,而不是類的實例。你不需要創建類的實例就可以訪問靜態成員。

class MathUtils {static sum(a: number, b: number): number {return a + b;}
}console.log(MathUtils.sum(1, 2));  // 輸出: 3

在這個例子中,sum 是一個靜態方法,可以直接通過類名 MathUtils 調用,而不需要創建類的實例。

通過這些基本概念,你可以開始使用 TypeScript 編寫面向對象的程序了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45180.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45180.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45180.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++入門到進階(圖文詳解,持續更新中)

C入門到進階(圖文詳解,持續更新中) 目錄 C入門到進階(圖文詳解,持續更新中) 數據 數據類型 基本數據類型/內置數據類型 C常用運算符 賦值運算符 關系運算符 邏輯運算符 雜項運算符 數據的本地化…

第二課:使用域名dns ping通www.baidu.com

需要一臺dns服務器,實現域名解析,把對應的網址變為Ip地址。 首先按照之前博客的配置,自動分配給PC1和PC2的IP地址等相關配置。 然后增加一臺server交換機連接到交換機上,配置好ip地址,192.168.1.100。在dnsServer中。…

7.11日學習打卡----初學Redis(六)

7.11日學習打卡 目錄: 7.11日學習打卡一. redis事務事務的概念與ACID特性Redis事務三大特性Redis事務執行的三個階段Redis事務基本操作 二. redis集群主從復制主從復制環境搭建主從復制原理剖析 哨兵監控哨兵監控環境搭建哨兵工作原理剖析 故障轉移Cluster模式Clust…

c++初階知識——類和對象(1)

目錄 1.類和對象 1.1 類的定義 1.2 訪問限定符 1.3 類域 2.實例化 2.1 實例化概念 2.2 對象大小 內存對齊規則 3.this指針 1.類和對象 1.1 類的定義 (1)class為定義類的關鍵字,Stack為類的名字,{}中為類的主體&#xf…

達夢數據庫中的線程和進程

達夢數據庫中的線程和進程 在達夢數據庫中,線程和進程的概念與操作系統中的定義類似,但有一些特定的實現細節和用途。以下是達夢數據庫中線程和進程的一些關鍵點: 進程(Process): 在達夢數據庫中&#x…

django的增刪改查,排序,分組等常用的ORM操作

Django 的 ORM(對象關系映射)提供了一種方便的方式來與數據庫進行交互。 1. Django模型 在 myapp/models.py 中定義一個示例模型:python from django.db import modelsclass Person(models.Model):name models.CharField(max_length100)age…

mysql數據庫被偷家,數據全部丟失。還勒索我給他比特幣

歹徒留下的勒索信息。 解決辦法: 1、設置ip白名單, 2、端口不要使用默認端口,隨便換個端口就行。 3、密碼設置復雜一點。

【Java16】多態

向上類型轉換 對于引用變量,在程序中有兩種形態:一種是編譯時類型,這種引用變量的類型在聲明它的時候就決定了;另一種則是運行時類型,這種變量的類型由實際賦給它的對象決定。 當一個引用變量的編譯時類型和運行時類…

【Pytorch】Conda環境pack打包遷移報錯處理

文章目錄 Anaconda虛擬環境打包一、源電腦的環境打包1.安裝conda-pack工具2.確定環境3.打包環境4.將打包環境拷貝到U盤 二、環境遷移到目標電腦上三、異常處理pip install -e. 導致無法pack→忽略管理的文件已經被刪除或者被覆蓋→壓縮成tar注意 重新激活環境 Anaconda虛擬環境…

14 - matlab m_map地學繪圖工具基礎函數 - 一些數據轉換函數(一)

14 - matlab m_map地學繪圖工具基礎函數 - 一些數據轉換函數(一) 0. 引言1. 關于m_ll2xy和m_xy2ll2. 關于m_lldist3. 關于m_xydist4 關于m_fdist5 關于m_idist6. 總結 0. 引言 通過前面篇節已經將m_map繪圖工具中大多繪圖有關的函數進行過介紹&#xff0…

Nuxt3封裝網絡請求 useFetch $fetch

前言: 剛接觸、搭建Nuxt3項目的過程還是有點懵的,有種摸石頭過河的感覺,對于網絡請求這塊,與之前的Vue3項目有所區別,在Vue項目通常使用axios這個庫進行網絡請求,但在Nuxt項目并不推薦,因為有內…

RK3568平臺(顯示篇)主屏副屏配置

一.主屏副屏配置 目前在RK3568平臺上有兩路HDMIOUT輸出,分別輸出到兩個屏幕上,一路配置為主屏,一路配置為副屏。 硬件原理圖: &hdmi0_in_vp2 {status "okay"; };&hdmi1_in_vp0 {status "okay"; }…

【JAVA入門】Day15 - 接口

【JAVA入門】Day15 - 接口 文章目錄 【JAVA入門】Day15 - 接口一、接口是對“行為”的抽象二、接口的定義和使用三、接口中成員的特點四、接口和類之間的關系五、接口中新增的方法5.1 JDK8開始接口中新增的方法5.1.1 接口中的默認方法5.1.2 接口中的靜態方法 5.2 JDK9 開始接口…

Pandas實戰指南:any()函數深度解析與高效應用

Pandas實戰指南:any()函數深度解析與高效應用 引言 在數據分析和處理過程中,經常需要快速檢查數據集中是否存在滿足特定條件的元素。Pandas庫中的any()函數正是這樣一個強大的工具,它可以幫助我們沿著指定的軸檢查是否至少有一個元素滿足某…

Transformer重要論文與書籍 - Transformer教程

近年來,人工智能領域中的Transformer模型無疑成為了炙手可熱的研究對象。從自然語言處理(NLP)到計算機視覺,Transformer展現出了前所未有的強大能力。今天,我們將探討Tra在當今的人工智能和機器學習領域,Tr…

路由守衛中使用next()跳轉到指定路徑時會無限循環

路由守衛鉤子介紹 const router new VueRouter({ ... }) // 導航路由變化時觸發路由守衛鉤子 router.beforeEach((to, from, next) > {// ... }) to: Route: 即將要進入的目標路由對象(到哪去)from: Route: 當前導航正要離開的路由(從哪來)next: Function(必須&#xff0…

axios使用sm2加密數據后請求參數多了雙引號解決方法

axios使用sm2加密數據后請求參數多了雙引號解決 背景問題描述解決過程 背景 因項目安全要求,需對傳給后端的入參加密,將請求參數加密后再傳給后端 前期將axios降低到1.6.7后解決了問題,但最近axios有漏洞,安全要求對版本升級&…

從零開始[進階版]深入學習圖像分類:使用Python和TensorFlow

引言 圖像分類是計算機視覺中的一個核心任務,廣泛應用于人臉識別、自動駕駛、醫療影像分析等領域。在本篇文章中,我們將深入探討圖像分類的原理和實現,使用Python和TensorFlow搭建一個完整的圖像分類系統。本文不僅適合初學者,也…

【Qt 初識 Test】用圖形化和代碼的方式實現簡單的Qt程序

文章目錄 1. 通過圖形化的方式實現🍎2. 通過代碼的方式實現 1. 通過圖形化的方式實現🍎 在界面創建出一個控件,顯示 hello world,通過拖拽的方式實現; widget.ui文件如下:🔍 生成的 ui_widget.…

生物環保技術有哪些缺點或者局限性呢

生物環保技術,作為一種利用生物學原理和技術來處理環境污染的方法,雖然具有綠色環保、高效節能等優點,但也存在一些缺點和局限性。以下是對這些缺點和局限性的詳細分析: 一、受環境因素影響大 生物環保技術的效果往往受到環境因…