HarmonyOs開發之——TypeScript介紹、入門,及 TypeScript、JavaScript、ArkTs的具體區別解讀。

HarmonyOs開發之——TypeScript介紹、入門,及 TypeScript、JavaScript、ArkTs的具體區別解讀。

一、?開發語言介紹:

TypeScript是JavaScript的超集,ArkTS則是TypeScript的超集。ArkTs是 HarmonyOs的主力開發語言,它在TypeScript(簡稱TS)的基礎上,匹配ArkUI框架,擴展了聲明式UI、狀態管理等相應的能力,讓開發者以更簡潔、更自然的方式開發跨端應用。
  • JavaScript是一種屬于網絡的高級腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。
  • TypeScript 是 JavaScript 的一個超集,它擴展了 JavaScript 的語法,通過在JavaScript的基礎上添加靜態類型定義構建而成,是一個開源的編程語言。
  • ArkTS兼容TypeScript語言,拓展了聲明式UI、狀態管理、并發任務等能力。
1、ArkTS基礎類型:
  • let isSelect:boolean = false;? 布爾值
  • let count:number = 2222; //0b9897989、0o45646、9x7e8? ?數字
  • let name:string = "limeimei"? 字符串
  • let list:number[] = [1,2,1] 數組
  • let list:Array<number>=[1,2,1] 泛型數組
  • enum Color{r,g,b};? let c:Color = Color.Green;? 枚舉
  • function main():void{ ... }? 函數
2、類:TypeScript支持基于類的面向對象的編程方式,定義類的關鍵字為 class,后面緊跟類名。類描述了所創建的對象共同的屬性和方法。
A、類的定義

聲明一個Person類,這個類有3個成員:一個是屬性(包含name和age),一個是構造函數,一個是getPersonInfo方法,其定義如下所示。

class Person {private name: stringprivate age: numberconstructor(name: string, age: number) {this.name = name;this.age = age;}public getPersonInfo(): string {return `My name is ${this.name} and age is ${this.age}`;}
}

通過上面的Person類,我們可以定義一個人物Jacky并獲取他的基本信息,其定義如下:

let person1 = new Person('Jacky', 18);
person1.getPersonInfo();

B、繼承

繼承就是子類繼承父類的特征和行為,使得子類具有父類相同的行為。TypeScript中允許使用繼承來擴展現有的類,對應的關鍵字為extends。

class Employee extends Person {private department: stringconstructor(name: string, age: number, department: string) {super(name, age);this.department = department;}public getEmployeeInfo(): string {return this.getPersonInfo() + ` and work in ${this.department}`;}
}

通過上面的Employee類,我們可以定義一個人物Tom,這里可以獲取他的基本信息,也可以獲取他的雇主信息,其定義如下:

et person2 = new Employee('Tom', 28, 'HuaWei');
person2.getPersonInfo();
person2.getEmployeeInfo();

在TypeScript中,有public、private、protected修飾符,其功能和具體使用場景大家可以參考TypeScript的相關學習資料,進行拓展學習。

C、模塊

隨著應用越來越大,通常要將代碼拆分成多個文件,即所謂的模塊(module)。模塊可以相互加載,并可以使用特殊的指令 export 和 import 來交換功能,從另一個模塊調用一個模塊的函數。

兩個模塊之間的關系是通過在文件級別上使用 import 和 export 建立的。模塊里面的變量、函數和類等在模塊外部是不可見的,除非明確地使用 export 導出它們。類似地,我們必須通過 import 導入其他模塊導出的變量、函數、類等。

導出

任何聲明(比如變量,函數,類,類型別名或接口)都能夠通過添加export關鍵字來導出,例如我們要把NewsData這個類導出,代碼示意如下:

export class NewsData {title: string;content: string;imagesUrl: Array<NewsFile>;source: string;constructor(title: string, content: string, imagesUrl: Array<NewsFile>, source: string) {this.title = title;this.content = content;this.imagesUrl = imagesUrl;this.source = source;}
}

導入

模塊的導入操作與導出一樣簡單。 可以使用以下 import形式之一來導入其它模塊中的導出內容。

import { NewsData } from '../common/bean/NewsData';
D、迭代器:當一個對象實現了Symbol.iterator屬性時,我們認為它是可迭代的。一些內置的類型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。
E、for..of 語句:會遍歷可迭代的對象,調用對象上的Symbol.iterator方法。 下面是在數組上使用for..of的簡單例子:
let someArray = [1, "string", false];for (let entry of someArray) {console.log(entry); // 1, "string", false}
F、for..of vs. for..in 語句:均可迭代一個列表,但是用于迭代的值卻不同:for..in迭代的是對象的鍵,而for..of則迭代的是對象的值。
let list = [4, 5, 6];for (let i in list) {console.log(i); // "0", "1", "2",
}for (let i of list) {console.log(i); // "4", "5", "6"
}

一、TypeScript、JavaScript、ArkTs的具體區別

TypeScript、JavaScript 和 ArkTS 是三種不同的編程語言,它們之間有明顯的區別和聯系。下面將詳細地描述它們的區別:
?
1、JavaScript:是一種高級的、解釋執行的編程語言,主要用于網頁開發。它的設計目的是為了在網頁瀏覽器中運行,控制網頁的行為。JavaScript 是一種動態類型語言,這意味著在運行時可以改變變量的類型。它具有單線程執行模型,意味著一次只能執行一個任務,這是它設計時的限制。
  • 動態類型系統:變量在運行時可以改變類型。
  • 單線程執行:一次只能執行一個任務。
  • 基礎功能:包括控制 DOM、處理事件、執行異步操作等。
2、TypeScript:TypeScript 是 JavaScript 的一個超集,由 Microsoft 開發。它在 JavaScript 的基礎上增加了靜態類型系統,這意味著在編譯時就能檢查類型錯誤,提高了代碼的穩定性和可維護性。TypeScript 代碼需要被編譯成 JavaScript 才能在瀏覽器或 Node.js 中運行。
  • 靜態類型系統:變量類型在編譯時確定,可以提供更早的錯誤檢查。
  • 編譯為 JavaScript:TypeScript 代碼最終會被編譯成 JavaScript。
  • 擴展 JavaScript:添加了類、接口、枚舉等結構化編程特性。
3、ArkTS:ArkTS 是專為鴻蒙OS(HarmonyOS)設計的全場景應用開發語言。它在 TypeScript 的基礎上進一步擴展,增加了聲明式UI、狀態管理等特性,以支持鴻蒙OS的組件化開發。ArkTS 也支持一次開發,多端部署,意味著在一個平臺上編寫代碼后,可以部署到不同的設備端。
  • 聲明式UI:以聲明的方式定義用戶界面,使代碼更簡潔、易維護。
  • 狀態管理:提供組件狀態、數據共享等機制,方便處理復雜應用狀態。
  • 組件化開發:支持組件化、可配置的開發,降低開發難度,提高開發效率。
  • 與 JavaScript/TypeScript 的兼容性:作為 TypeScript 的超集,ArkTS 兼容 JavaScript 和 TypeScript 的代碼和庫。
    ?
總結:
JavaScript?是基礎,廣泛用于網頁和前端開發。
TypeScript?是 JavaScript 的超集,增加了靜態類型檢查,適合大型項目和團隊協作。
ArkTS** 是 TypeScript 的超集,專為鴻蒙OS設計,支持組件化、聲明式UI和狀態管理等特性,適用于鴻蒙OS的全場景應用開發。

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

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

相關文章

《JMS事務性會話徹底解析:消息監聽中的 commit、rollback 和冪等設計》

大家好&#xff0c;我是G探險者&#xff01; &#x1f4cc; 場景引入 在實際項目中&#xff0c;我們常常面臨以下挑戰&#xff1a; 監聽 MQ 消息失敗了&#xff0c;希望自動重試&#xff1f;消費 MQ 消息后&#xff0c;要寫數據庫&#xff0c;但中間報錯了&#xff1f;消息處…

vue3 el-table 列增加 自定義排序邏輯

在 Vue 3 中使用 Element Plus 的 <el-table> 組件時&#xff0c;如果你想增加自定義排序邏輯&#xff0c;可以通過以下幾個步驟實現&#xff1a; 1. 使用 default-sort 屬性 首先&#xff0c;你可以在 <el-table> 組件上使用 default-sort 屬性來指定默認的排序…

ISP Pipeline(7): Gamma Correction 伽馬校正

AI_Plays/ISP/Fast_ISP_Progress.ipynb at main ameengee/AI_Plays GitHub Gamma Correction&#xff08;伽馬校正&#xff09;是圖像處理中的一個重要步驟&#xff0c;目的是調整圖像的亮度&#xff0c;使其更符合人眼的感知或顯示設備的特性。 為什么需要 Gamma Correcti…

AI提取伴奏,實現卡拉OK效果 —— 「suno api/luno api/kuka api」

導讀 喜歡唱歌&#xff0c;卻總苦于找不到純凈的伴奏&#xff1f;或者你想把喜歡的歌曲翻唱一遍&#xff0c;卻被人聲干擾搞得頭大&#xff1f;現在&#xff0c;AI技術已經悄悄解決了這個問題。借助AI智能工具&#xff0c;你可以輕松提取任何一首歌的伴奏&#xff0c;享受宛如…

pip介紹

pip是什么&#xff1f; pip&#xff08;Pip Installs Packages&#xff09;是Python的官方管理工具&#xff0c;用于安裝、升級、卸載和管理Python第三方庫及其依賴關系。它是Python生態系統的核心組件&#xff0c;通過連接PyPI&#xff08;Python Package Index&#xff09;這…

機器學習20-線性網絡思考

機器學習20-線性網絡思考 針對線性網絡的基礎問題&#xff0c;使用基礎示例進行解釋 1-核心知識點 1-線性模型家族的線性回歸和邏輯回歸分別是什么&#xff0c;線性模型家族還有沒有其他的模型 線性模型家族是一系列基于線性假設的統計模型&#xff0c;它們假設因變量和自變量…

【科研繪圖系列】R語言繪制世界地圖分布(world map)

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹加載R包數據下載導入數據數據預處理準備畫圖畫圖總結系統信息介紹 本教程旨在通過R語言及其相關地理空間分析包,展示如何對環境數據進行空間聚類分析,并將結果可視化。教程從讀…

Armbian 25.5.1 Noble Gnome 開啟遠程桌面功能

sudo apt install gnome-remote-desktop ----長話短說 故障表現 Ubuntu 25版本點擊遠程桌面功能沒有任何反應, WIN_20250630_00_53_24_Pro 最后 armbian 官方社區充滿了傲慢,一言不合就關閉話題,問題都沒有解決就給我關閉了 最后檢索到英文網站,說到了這么一句話,檢查遠程桌…

嵌入式 Linux 入門:從裸機到系統級開發的第一步

隨著嵌入式系統應用的不斷深入&#xff0c;很多 MCU 項目開發者會在某個階段遇到瓶頸&#xff1a;系統越來越復雜、任務越來越多、通信越來越頻繁、性能要求越來越高。 這時候&#xff0c;從 MCU / RTOS 過渡到 嵌入式 Linux 開發 就成為一次技術升級的關鍵轉折點。 本文將帶…

詳解 Blazor 組件傳值

父子組件傳值 在 Blazor 中&#xff0c;組件之間的通信可以通過 [Parameter] 參數和 EventCallback<T> 事件回調實現。下面分別給出 父組件傳遞值給子組件 和 子組件傳遞值給父組件 的簡單示例。 1.1 父組件傳遞值給子組件 步驟&#xff1a; 在子組件中定義 public 屬…

力扣熱題100再刷

160.相交鏈表 讀一遍A&#xff0c;一個set存節點&#xff0c;遍歷B的時候判斷即可。復習下set的STL&#xff1a;set有set和unordered_set&#xff0c;同樣有insert&#xff0c;find&#xff0c;count&#xff0c;對于set而言&#xff0c;自動從小到大排序&#xff0c;還有&…

MySQL常用函數性能優化及索引影響分析

MySQL 常用函數性能優化指南&#xff08;含索引影響分析&#xff09; 以下是 MySQL 函數使用指南&#xff0c;新增性能影響評級、索引失效分析和優化方案&#xff0c;幫助您高效使用函數&#xff1a; &#x1f4dc; 一、字符串處理函數&#xff08;含性能分析&#xff09; 函…

莫隊(基礎版)優雅的暴力

莫隊算法是一種離線算法&#xff0c;常用于高效處理區間查詢問題。它通過合理排序和移動左右端點來減少時間復雜度。 基本思想 莫隊算法的核心思想是將所有查詢離線排序&#xff01;&#xff01;&#xff08;找出一個過起來最快的查詢順序&#xff09;&#xff0c;然后通過移動…

? Python 高級定制 | 美化 Word 表格邊框與樣式(收貨記錄增強版)

之前我們完成了 Excel 數據提取、Word 表格寫入與合并&#xff0c;現在繼續 為 Word 表格添加高級樣式 裝扮&#xff0c;包括單元格邊框、背景填色、居中對齊、粗體、高亮行/列等&#xff0c;進一步增強表格的可讀性與專業性。 &#x1f58c;? 樣式設置函數 1. 設置單元格邊框…

Clickhouse源碼分析-TTL執行流程

第一種情況&#xff1a;無ttl_only_drop_parts配置 總體示例以及說明 如果沒有ttl_only_drop_parts的配置&#xff0c;過期數據的刪除&#xff08;這里是刪除&#xff0c;是將過期的數據從這個part刪除&#xff0c;并將過期的數據構成一個part&#xff0c;這個過期的part標記…

elementui修改radio字體的顏色和圓圈的樣式

改完 <div class"choose"><el-radio-group v-model"radioNum"><el-radio label"1" size"large">Option 1</el-radio><el-radio label"2" size"large">Option 2</el-radio>&l…

力扣3381. 長度可被 K 整除的子數組的最大元素和

由于數據范圍是2*10^5所以必然是遍歷一次&#xff0c;子數組必定要用到前綴和&#xff0c;之前的題目中總是遇到的是子數組的和能不能被k整除&#xff0c;而這里不一樣的是子數組的長度能不能被k整除&#xff0c;如果單純的枚舉長度必定超時&#xff0c;而看看題解得出的思路&a…

基于SSM的勤工助學系統的設計與實現

第1章 摘要 基于SSM框架的勤工助學系統旨在為學生、用工部門和管理員提供高效便捷的管理平臺。系統包括學生端、用工部門端和管理員端&#xff0c;涵蓋了從崗位發布、申請審核、工時記錄、薪資管理到數據統計等完整的功能需求。 學生可以通過系統首頁瀏覽最新的崗位信息和公告&…

2025年06月30日Github流行趨勢

項目名稱&#xff1a;twenty 項目地址 URL&#xff1a;https://github.com/twentyhq/twenty項目語言&#xff1a;TypeScript歷史 star 數&#xff1a;31,774今日 star 數&#xff1a;1,002項目維護者&#xff1a;charlesBochet, lucasbordeau, FelixMalfait, Weiko, bosiraphae…

creo 2.0學習筆記

Creo軟件從入門到精通——杜書森 1.1 Creo基本建模過程介紹 新建-零件-改名稱-取消使用默認模板&#xff0c;是因為默認的是英制尺寸&#xff0c;自定義可選擇mmns_part_solid&#xff0c;模板主要是設置模型的單位拉伸-選取FRONT-點擊草繪視圖&#xff0c;可進行草繪旋轉——…