国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門)

這篇具有很好參考價值的文章主要介紹了HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

編程語言介紹

ArkTS是HarmonyOS優(yōu)選的主力應用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配ArkUI框架,擴展了聲明式UI、狀態(tài)管理等相應的能力,讓開發(fā)者以更簡潔、更自然的方式開發(fā)跨端應用。要了解什么是ArkTS,我們首先要了解下ArkTS、TypeScript和JavaScript之間的關(guān)系:

  • JavaScript是一種屬于網(wǎng)絡(luò)的高級腳本語言,已經(jīng)被廣泛用于Web應用開發(fā),常用來為網(wǎng)頁添加各式各樣的動態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。
  • TypeScript 是 JavaScript 的一個超集,它擴展了 JavaScript 的語法,通過在JavaScript的基礎(chǔ)上添加靜態(tài)類型定義構(gòu)建而成,是一個開源的編程語言。
  • ArkTS兼容TypeScript語言,拓展了聲明式UI、狀態(tài)管理、并發(fā)任務(wù)等能力。

由此可知,TypeScript是JavaScript的超集,ArkTS則是TypeScript的超集,他們的關(guān)系如下圖所示:

HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門),鴻蒙(HarmonyOS),typescript,harmonyos,華為

在學習ArkTS聲明式的相關(guān)語法之前,我們首先學習下TypeScript的基礎(chǔ)語法。

基礎(chǔ)類型

TypeScript支持一些基礎(chǔ)的數(shù)據(jù)類型,如布爾型、數(shù)組、字符串等,下文舉例幾個較為常用的數(shù)據(jù)類型,我們來了解下他們的基本使用。

布爾值

TypeScript中可以使用boolean來表示這個變量是布爾值,可以賦值為true或者false。

let isDone: boolean = false;

數(shù)字

TypeScript里的所有數(shù)字都是浮點數(shù),這些浮點數(shù)的類型是 number。除了支持十進制,還支持二進制、八進制、十六進制。

let decLiteral: number = 2023;
let binaryLiteral: number = 0b11111100111;
let octalLiteral: number = 0o3747;
let hexLiteral: number = 0x7e7;

字符串

TypeScript里使用 string表示文本數(shù)據(jù)類型, 可以使用雙引號( ")或單引號(')表示字符串。

let name: string = "Jacky";
name = "Tom";
name = 'Mick';

數(shù)組

TypeScrip有兩種方式可以定義數(shù)組。 第一種,可以在元素類型后面接上 [],表示由此類型元素組成的一個數(shù)組。

let list: number[] = [1, 2, 3];

第二種方式是使用數(shù)組泛型,Array<元素類型>。

let list: Array<number> = [1, 2, 3];

元組

元組類型允許表示一個已知元素數(shù)量和類型的數(shù)組,各元素的類型不必相同。 比如,你可以定義一對值分別為 string和number類型的元組。

let x: [string, number];
x = ['hello', 10]; // OK
x = [10, 'hello']; // Error

枚舉

enum類型是對JavaScript標準數(shù)據(jù)類型的一個補充,使用枚舉類型可以為一組數(shù)值賦予友好的名字。

enum Color {Red, Green, Blue};
let c: Color = Color.Green;

Unknown

有時候,我們會想要為那些在編程階段還不清楚類型的變量指定一個類型。這種情況下,我們不希望類型檢查器對這些值進行檢查而是直接讓它們通過編譯階段的檢查。那么我們可以使用unknown類型來標記這些變量。

let notSure: unknown = 4;
notSure = 'maybe a string instead';
notSure = false;

Void

當一個函數(shù)沒有返回值時,你通常會見到其返回值類型是 void。

function test(): void {
   console.log('This is function is void');
}

Null 和 Undefined

TypeScript里,undefined和null兩者各自有自己的類型分別叫做undefined和null。

let u: undefined = undefined;
let n: null = null;

聯(lián)合類型

聯(lián)合類型(Union Types)表示取值可以為多種類型中的一種。

let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;

條件語句

條件語句用于基于不同的條件來執(zhí)行不同的動作。TypeScript 條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True 或 False)來決定執(zhí)行的代碼塊。

if 語句

TypeScript if 語句由一個布爾表達式后跟一個或多個語句組成。

var num:number = 5
if (num > 0) { 
   console.log('數(shù)字是正數(shù)') 
}

if…else 語句

一個 if 語句后可跟一個可選的 else 語句,else 語句在布爾表達式為 false 時執(zhí)行。

var num:number = 12; 
if (num % 2==0) { 
    console.log('偶數(shù)'); 
} else {
    console.log('奇數(shù)'); 
}

if…else if…else 語句

if…else if…else 語句在執(zhí)行多個判斷條件的時候很有用。

var num:number = 2 
if(num > 0) { 
    console.log(num+' 是正數(shù)') 
} else if(num < 0) { 
    console.log(num+' 是負數(shù)') 
} else { 
    console.log(num+' 為0') 
}

switch…case 語句

一個 switch 語句允許測試一個變量等于多個值時的情況。每個值稱為一個 case,且被測試的變量會對每個 switch case 進行檢查。

var grade:string = 'A'; 
switch(grade) { 
    case 'A': { 
        console.log('優(yōu)'); 
        break; 
    } 
    case 'B': { 
        console.log('良'); 
        break; 
    } 
    case 'C': {
        console.log('及格'); 
        break;    
    } 
    case 'D': { 
        console.log('不及格'); 
        break; 
    }  
    default: { 
        console.log('非法輸入'); 
        break;              
    } 
}

函數(shù)

函數(shù)是一組一起執(zhí)行一個任務(wù)的語句,函數(shù)聲明要告訴編譯器函數(shù)的名稱、返回類型和參數(shù)。TypeScript可以創(chuàng)建有名字的函數(shù)和匿名函數(shù),其創(chuàng)建方法如下:

// 有名函數(shù)
function add(x, y) {
  return x + y;
}

// 匿名函數(shù)
let myAdd = function (x, y) {
  return x + y;
};

為函數(shù)定義類型

為了確保輸入輸出的準確性,我們可以為上面那個函數(shù)添加類型:

// 有名函數(shù):給變量設(shè)置為number類型
function add(x: number, y: number): number {
  return x + y;
}

// 匿名函數(shù):給變量設(shè)置為number類型
let myAdd = function (x: number, y: number): number {
  return x + y;
};

可選參數(shù)

在TypeScript里我們可以在參數(shù)名旁使用 ?實現(xiàn)可選參數(shù)的功能。 比如,我們想讓lastName是可選的:

function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + ' ' + lastName;
    else
        return firstName;
}

let result1 = buildName('Bob');
let result2 = buildName('Bob', 'Adams'); 

剩余參數(shù)

剩余參數(shù)會被當做個數(shù)不限的可選參數(shù)。 可以一個都沒有,同樣也可以有任意個。 可以使用省略號( …)進行定義:

function getEmployeeName(firstName: string, ...restOfName: string[]) {
  return firstName + ' ' + restOfName.join(' ');
}

let employeeName = getEmployeeName('Joseph', 'Samuel', 'Lucas', 'MacKinzie');

箭頭函數(shù)

ES6版本的TypeScript提供了一個箭頭函數(shù),它是定義匿名函數(shù)的簡寫語法,用于函數(shù)表達式,它省略了function關(guān)鍵字。箭頭函數(shù)的定義如下,其函數(shù)是一個語句塊:

( [param1, parma2,…param n] )=> {
    // 代碼塊
}

其中,括號內(nèi)是函數(shù)的入?yún)?,可以?到多個參數(shù),箭頭后是函數(shù)的代碼塊。我們可以將這個箭頭函數(shù)賦值給一個變量,如下所示:

let arrowFun = ( [param1, parma2,…param n] )=> {
    // 代碼塊
}

如何要主動調(diào)用這個箭頭函數(shù),可以按如下方法去調(diào)用:

arrowFun(param1, parma2,…param n)

接下來我們看看如何將我們熟悉的函數(shù)定義方式轉(zhuǎn)換為箭頭函數(shù)。我們可以定義一個判斷正負數(shù)的函數(shù),如下:

function testNumber(num: number) {
  if (num > 0) {
    console.log(num + ' 是正數(shù)');
  } else if (num < 0) {
    console.log(num + ' 是負數(shù)');
  } else {
    console.log(num + ' 為0');
  }
}

其調(diào)用方法如下:

testNumber(1)   //輸出日志:1 是正數(shù)

如果將這個函數(shù)定義為箭頭函數(shù),定義如下所示:

let testArrowFun = (num: number) => {
  if (num > 0) {
    console.log(num + ' 是正數(shù)');
  } else if (num < 0) {
    console.log(num + ' 是負數(shù)');
  } else {
    console.log(num + ' 為0');
  }
}

其調(diào)用方法如下:

testArrowFun(-1)   //輸出日志:-1 是負數(shù)

后面,我們在學習HarmonyOS應用開發(fā)時會經(jīng)常用到箭頭函數(shù)。例如,給一個按鈕添加點擊事件,其中onClick事件中的函數(shù)就是箭頭函數(shù)。

Button("Click Now")
  .onClick(() => {
    console.info("Button is click")
  })

TypeScript支持基于類的面向?qū)ο蟮木幊谭绞剑x類的關(guān)鍵字為 class,后面緊跟類名。類描述了所創(chuàng)建的對象共同的屬性和方法。

類的定義

例如,我們可以聲明一個Person類,這個類有3個成員:一個是屬性(包含name和age),一個是構(gòu)造函數(shù),一個是getPersonInfo方法,其定義如下所示。

class Person {
  private name: string
  private age: number

  constructor(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();

繼承

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

class Employee extends Person {
  private department: string

  constructor(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,這里可以獲取他的基本信息,也可以獲取他的雇主信息,其定義如下:

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

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

模塊

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

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

導出

任何聲明(比如變量,函數(shù),類,類型別名或接口)都能夠通過添加export關(guān)鍵字來導出,例如我們要把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形式之一來導入其它模塊中的導出內(nèi)容。

import { NewsData } from '../common/bean/NewsData';

迭代器

當一個對象實現(xiàn)了Symbol.iterator屬性時,我們認為它是可迭代的。一些內(nèi)置的類型如Array,Map,Set,String,Int32Array,Uint32Array等都具有可迭代性。

for…of 語句

for…of會遍歷可迭代的對象,調(diào)用對象上的Symbol.iterator方法。 下面是在數(shù)組上使用for…of的簡單例子:

let someArray = [1, "string", false];

for (let entry of someArray) {
    console.log(entry); // 1, "string", false
}

for…of vs. for…in 語句

for…of和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"
}

后續(xù)學習

TypeScript是一個開源的編程語言,本章節(jié)只介紹了TypeScript的基礎(chǔ)語法知識,更多內(nèi)容大家可以參考TypeScript的官方教程(https://www.typescriptlang.org/docs/)。大家在學習過程中,如果沒有搭建TypeScript的開發(fā)環(huán)境,也可以直接使用在線Playground平臺(https://www.typescriptlang.org/play)進行編碼練習。已掌握TypeScript編程基礎(chǔ)的學員可以跳過本章節(jié)的學習,沒有接觸過TypeScript的同學可以先補齊相關(guān)的語法基礎(chǔ),再進入HarmonyOS的相關(guān)開發(fā)學習之旅。文章來源地址http://www.zghlxwxcb.cn/news/detail-755651.html

到了這里,關(guān)于HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【HarmonyOS北向開發(fā)】-05 ArkTS開發(fā)語言-ArkTS開發(fā)實踐
  • 【HarmonyOS北向開發(fā)】-04 ArkTS開發(fā)語言-ArkTS基礎(chǔ)知識
  • HarmonyOS學習 -- ArkTS開發(fā)語言入門

    HarmonyOS學習 -- ArkTS開發(fā)語言入門

    ArkTS是HarmonyOS主力應用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配ArkUI框架,擴展了聲明式UI、狀態(tài)管理等相應的能力,讓開發(fā)者以更簡潔、更自然的方式開發(fā)跨端應用。 JavaScript是一種屬于網(wǎng)絡(luò)的高級腳本語言,已經(jīng)被廣泛應用開發(fā),常用來為網(wǎng)頁添加各式各樣的動態(tài)

    2024年02月08日
    瀏覽(28)
  • 【鴻蒙4.0】詳解harmonyos開發(fā)語言ArkTS

    【鴻蒙4.0】詳解harmonyos開發(fā)語言ArkTS

    如官方文檔所描述,ArkTS是基于Javascript以及Typescript的生態(tài)上做了進一步的擴展,進一步的提高開發(fā)效率,使用過低代碼開發(fā)的老師應該會有一種感覺ArkTS像低代碼一樣更簡潔,幾行代碼就能實現(xiàn)一個功能。以開發(fā)者的角度肯定是越簡潔越好。下面來淺淺的了解一下js,ts以及

    2024年01月22日
    瀏覽(48)
  • HarmonyOS(二)—— 初識ArkTS開發(fā)語言(中)之ArkTS的由來和演進

    HarmonyOS(二)—— 初識ArkTS開發(fā)語言(中)之ArkTS的由來和演進

    在上一篇文章HarmonyOS(二)—— 初識ArkTS開發(fā)語言(上)之TypeScript入門,我初識了TypeScript相關(guān)知識點,也知道ArkTS是華為基于TypeScript發(fā)展演化而來。 從最初的基礎(chǔ)的邏輯交互能力,到具備類型系統(tǒng)的高效工程開發(fā)能力,再到融合聲明式UI、多維狀態(tài)管理等豐富的應用開發(fā)能

    2024年02月06日
    瀏覽(32)
  • HarmonyOS/OpenHarmony-ArkTS基于API9元服務(wù)開發(fā)快速入門

    HarmonyOS/OpenHarmony-ArkTS基于API9元服務(wù)開發(fā)快速入門

    一、創(chuàng)建項目 ? ? 二、創(chuàng)建卡片 ? ? 三、添加資源 ? 四、具體代碼 五、運行案例 ? ? 六、案例卡片效果 ? 七、代碼地址 (HarmonyOSAPP開發(fā)相關(guān)組件: 深圳市蛟龍騰飛網(wǎng)絡(luò)科技有限公司 - Gitee.com)

    2024年02月14日
    瀏覽(24)
  • HarmonyOS/OpenHarmony應用開發(fā)-ArkTS語言基本語法說明

    HarmonyOS/OpenHarmony應用開發(fā)-ArkTS語言基本語法說明

    圖1? 示例效果圖 ? 本示例中,ArkTS的基本組成如下所示。 圖2? ArkTS的基本組成 ? ? 裝飾器: 用于裝飾類、結(jié)構(gòu)、方法以及變量,并賦予其特殊的含義。如上述示例中@Entry、@Component和@State都是裝飾器,@Component表示自定義組件,@Entry表示該自定義組件為入口組件,@State表示組

    2024年02月07日
    瀏覽(37)
  • HarmonyOS(二)—— 初識ArkTS開發(fā)語言(下)之ArkTS聲明式語法和組件化基礎(chǔ)

    HarmonyOS(二)—— 初識ArkTS開發(fā)語言(下)之ArkTS聲明式語法和組件化基礎(chǔ)

    通過前面ArkTS開發(fā)語言(上)之TypeScript入門以及ArkTS開發(fā)語言(中)之ArkTS的由來和演進倆文我們知道了ArkTS的由來以及演進,知道了ArkTS具備了聲明式語法和組件化特性,今天,搭建一個可刷新的排行榜頁面。在排行榜頁面中,使用循環(huán)渲染控制語法來實現(xiàn)列表數(shù)據(jù)渲染,使

    2024年02月04日
    瀏覽(22)
  • HarmonyOS/OpenHarmony應用開發(fā)-ArkTS語言聲明式UI描述

    ArkTS以聲明方式組合和擴展組件來描述應用程序的UI,同時還提供了基本的屬性、事件和子組件配置方法,幫助開發(fā)者實現(xiàn)應用交互邏輯。 一、創(chuàng)建組件 根據(jù)組件構(gòu)造方法的不同,創(chuàng)建組件包含有參數(shù)和無參數(shù)兩種方式。 說明,創(chuàng)建組件時不需要new運算符。 1.無參數(shù) 如果組

    2024年02月08日
    瀏覽(21)
  • HarmonyOS/OpenHarmony應用開發(fā)-Stage模型ArkTS語言FormExtensionAbility

    FormExtensionAbility模塊提供了卡片擴展相關(guān)接口。 說明 : 模塊首批接口從API version 9 開始支持。模塊接口僅可在Stage模型下使用。 導入模塊 : import FormExtensionAbility from \\\'@ohos.app.form.FormExtensionAbility\\\'; 屬性: 名稱 類型 可讀 可寫 說明 context FormExtensionContext 是 否 FormExtensionAbility的上下

    2024年02月01日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包