日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙語言TypeScript學習第15天:【聯(lián)合類型】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-14 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、TypeScript 接口

接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應該是抽象的,需要由具體的類去實現(xiàn),然后第三方就可以通過這組抽象方法調用,讓具體的類執(zhí)行具體的方法。

TypeScript 接口定義如下:

interface interface_name { 
}

實例

以下實例中,我們定義了一個接口 IPerson,接著定義了一個變量 customer,它的類型是 IPerson。

customer 實現(xiàn)了接口 IPerson 的屬性和方法。鴻蒙學習文檔參考:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

TypeScript

搜狗高速瀏覽器截圖20240326151547.png

HarmonyOSOpenHarmony鴻蒙文檔紫料
+mau123789是v直接拿

interface IPerson { 
    firstName:string, 
    lastName:string, 
    sayHi: ()= >string 
} 
 
var customer:IPerson = { 
    firstName:"Tom",
    lastName:"Hanks", 
    sayHi: ():string = >{return "Hi there"} 
} 
 
console.log("Customer 對象 ") 
console.log(customer.firstName) 
console.log(customer.lastName) 
console.log(customer.sayHi())  
 
var employee:IPerson = { 
    firstName:"Jim",
    lastName:"Blakes", 
    sayHi: ():string = >{return "Hello!!!"} 
} 
 
console.log("Employee  對象 ") 
console.log(employee.firstName) 
console.log(employee.lastName)

需要注意接口不能轉換為 JavaScript。 它只是 TypeScript 的一部分。

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var customer = {
    firstName: "Tom",
    lastName: "Hanks",
    sayHi: function () { return "Hi there"; }
};
console.log("Customer 對象 ");
console.log(customer.firstName);
console.log(customer.lastName);
console.log(customer.sayHi());
var employee = {
    firstName: "Jim",
    lastName: "Blakes",
    sayHi: function () { return "Hello!!!"; }
};
console.log("Employee  對象 ");
console.log(employee.firstName);
console.log(employee.lastName);

輸出結果為:

Customer 對象
Tom
Hanks
Hi there
Employee  對象
Jim
Blakes

2、聯(lián)合類型和接口

以下實例演示了如何在接口中使用聯(lián)合類型:

TypeScript

interface RunOptions { 
    program:string; 
    commandline:string[]|string|(()= >string); 
} 
 
// commandline 是字符串
var options:RunOptions = {program:"test1",commandline:"Hello"}; 
console.log(options.commandline)  
 
// commandline 是字符串數(shù)組
options = {program:"test1",commandline:["Hello","World"]}; 
console.log(options.commandline[0]); 
console.log(options.commandline[1]);  
 
// commandline 是一個函數(shù)表達式
options = {program:"test1",commandline:()= >{return "**Hello World**";}}; 
 
var fn:any = options.commandline; 
console.log(fn());

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

// commandline 是字符串
var options = { program: "test1", commandline: "Hello" };
console.log(options.commandline);
// commandline 是字符串數(shù)組
options = { program: "test1", commandline: ["Hello", "World"] };
console.log(options.commandline[0]);
console.log(options.commandline[1]);
// commandline 是一個函數(shù)表達式
options = { program: "test1", commandline: function () { return "**Hello World**"; } };
var fn = options.commandline;
console.log(fn());

輸出結果為:

Hello
Hello
World
**Hello World**

3、接口和數(shù)組

接口中我們可以將數(shù)組的索引值和元素設置為不同類型,索引值可以是數(shù)字或字符串。

設置元素為字符串類型:

實例

interface namelist { 
   [index:number]:string 
} 
 
// 類型一致,正確
var list2:namelist = ["Google","Runoob","Taobao"]
// 錯誤元素 1 不是 string 類型
// var list2:namelist = ["Runoob",1,"Taobao"]

如果使用了其他類型會報錯:

實例

interface namelist { 
   [index:number]:string 
} 
 
// 類型一致,正確
// var list2:namelist = ["Google","Runoob","Taobao"]
// 錯誤元素 1 不是 string 類型
var list2:namelist = ["John",1,"Bran"]

執(zhí)行后報錯如下,顯示類型不一致:

test.ts:8:30 - error TS2322: Type 'number' is not assignable to type 'string'.

8 var list2:namelist = ["John",1,"Bran"]
                               ~

  test.ts:2:4
    2    [index:number]:string
         ~~~~~~~~~~~~~~~~~~~~~
    The expected type comes from this index signature.


Found 1 error.

TypeScript

interface ages { 
   [index:string]:number 
} 
 
var agelist:ages; 
 // 類型正確 
agelist["runoob"] = 15  
 
// 類型錯誤,輸出  error TS2322: Type '"google"' is not assignable to type 'number'.
// agelist[2] = "google"

4、接口繼承

接口繼承就是說接口可以通過其他接口來擴展自己。

Typescript 允許接口繼承多個接口。

繼承使用關鍵字 extends。

單接口繼承語法格式:

Child_interface_name extends super_interface_name

多接口繼承語法格式:

Child_interface_name extends super_interface1_name, super_interface2_name,…,super_interfaceN_name

繼承的各個接口使用逗號 , 分隔。

單繼承實例

TypeScript

interface Person { 
   age:number 
} 
 
interface Musician extends Person { 
   instrument:string 
} 
 
var drummer = < Musician >{}; 
drummer.age = 27 
drummer.instrument = "Drums" 
console.log("年齡:  "+drummer.age)
console.log("喜歡的樂器:  "+drummer.instrument)復制

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var drummer = {};
drummer.age = 27;
drummer.instrument = "Drums";
console.log("年齡:  " + drummer.age);
console.log("喜歡的樂器:  " + drummer.instrument);

輸出結果為:

年齡:  27
喜歡的樂器:  Drums

多繼承實例

TypeScript

interface IParent1 { 
    v1:number 
} 
 
interface IParent2 { 
    v2:number 
} 
 
interface Child extends IParent1, IParent2 { } 
var Iobj:Child = { v1:12, v2:23} 
console.log("value 1: "+Iobj.v1+" value 2: "+Iobj.v2)

編譯以上代碼,得到以下 JavaScript 代碼:

JavaScript

var Iobj = { v1: 12, v2: 23 };
console.log("value 1: " + Iobj.v1 + " value 2: " + Iobj.v2);

輸出結果為:

value 1: 12 value 2: 23

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    9603

    瀏覽量

    157661
  • 鴻蒙
    +關注

    關注

    60

    文章

    3031

    瀏覽量

    46191
  • HarmonyOS
    +關注

    關注

    80

    文章

    2157

    瀏覽量

    36304
  • OpenHarmony
    +關注

    關注

    33

    文章

    3977

    瀏覽量

    21373
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    鴻蒙TypeScript入門學習6:【條件語句】

    條件語句用于基于不同的條件來執(zhí)行不同的動作。 TypeScript 條件語句是通過一條或多條語句的執(zhí)行結果(True 或 False)來決定執(zhí)行的代碼塊。
    的頭像 發(fā)表于 04-01 13:51 ?1521次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b><b class='flag-5'>第</b>6<b class='flag-5'>天</b>:【條件語句】

    鴻蒙TypeScript學習7:【TypeScript 循環(huán)】

    有的時候,我們可能需要多次執(zhí)行同一塊代碼。一般情況下,語句是按順序執(zhí)行的:函數(shù)中的第一個語句先執(zhí)行,接著是第二個語句,依此類推。 編程語言提供了更為復雜執(zhí)行路徑的多種控制結構。
    的頭像 發(fā)表于 04-02 14:28 ?1670次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>7<b class='flag-5'>天</b>:【<b class='flag-5'>TypeScript</b> 循環(huán)】

    鴻蒙TypeScript 開發(fā)學習9:【TypeScript Number】

    TypeScript 與 JavaScript 類似,支持 Number 對象。 Number 對象是原始數(shù)值的包裝對象。
    的頭像 發(fā)表于 04-07 18:02 ?1538次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b> 開發(fā)<b class='flag-5'>學習</b><b class='flag-5'>第</b>9<b class='flag-5'>天</b>:【<b class='flag-5'>TypeScript</b> Number】

    鴻蒙語言TypeScript學習16:【類】

    TypeScript 支持面向對象的所有特性,比如 類、接口等。
    的頭像 發(fā)表于 04-15 09:29 ?1844次閱讀
    <b class='flag-5'>鴻蒙語言</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>16<b class='flag-5'>天</b>:【類】

    鴻蒙TypeScript學習17:【對象】

    對象是包含一組鍵值對的實例。 值可以是標量、函數(shù)、數(shù)組、對象等
    的頭像 發(fā)表于 04-15 15:33 ?1231次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>17<b class='flag-5'>天</b>:【對象】

    鴻蒙TypeScript學習20:【模塊】

    TypeScript 模塊的設計理念是可以更換的組織代碼。 模塊是在其自身的作用域里執(zhí)行,并不是在全局作用域,這意味著定義在模塊里面的變量、函數(shù)和類等在模塊外部是不可見的,除非明確地使用 export 導出它們。類似地,我們必須通過 import 導入其他模塊導出的變量、函數(shù)、類等。
    的頭像 發(fā)表于 04-18 15:19 ?1515次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>20<b class='flag-5'>天</b>:【模塊】

    鴻蒙語言ArkTS(更好的生產(chǎn)力與性能)

    ArkTS是鴻蒙生態(tài)的應用開發(fā)語言 ArkTS提供了聲明式UI范式、狀態(tài)管理支持等相應的能力,讓開發(fā)者可以以更簡潔、更自然的方式開發(fā)應用。 同時,它在保持TypeScript(簡稱TS)基本語法
    發(fā)表于 02-17 15:56

    【觸覺智能 Purple Pi OH 開發(fā)板體驗】二、鴻蒙系統(tǒng)APP應用例程學習HDC使用學習

    兩年開發(fā)鴻蒙APP也是使用的這兩種語言進行開發(fā)。當下看TypeScript程序還能說勉強看懂,但是當下開發(fā)程序就沒那個實力了,需要之后在抽時間學習。技術更新的也確實是快啊!!! 二、天
    發(fā)表于 08-31 11:13

    21學通C語言(6版)

    電子發(fā)燒友網(wǎng)站提供《21學通C語言(6版).txt》資料免費下載
    發(fā)表于 03-10 17:07 ?0次下載

    鴻蒙TypeScript入門學習2TypeScript安裝】

    本文介紹 TypeScript 環(huán)境的安裝。 我們需要使用到 npm 工具安裝,如果你還不了解 npm,可以參考我之前文檔。
    的頭像 發(fā)表于 03-27 15:22 ?1202次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>入門<b class='flag-5'>學習</b><b class='flag-5'>第</b>2<b class='flag-5'>天</b>【<b class='flag-5'>TypeScript</b>安裝】

    鴻蒙TypeScript開發(fā)入門學習3:【TS基礎類型

    任意值是 TypeScript 針對編程時類型不明確的變量使用的一種數(shù)據(jù)類型,它常用于以下三種情況。
    的頭像 發(fā)表于 03-28 15:02 ?1184次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b>開發(fā)入門<b class='flag-5'>學習</b><b class='flag-5'>第</b>3<b class='flag-5'>天</b>:【TS基礎<b class='flag-5'>類型</b>】

    鴻蒙TypeScript學習13:【元組】

    元組中允許存儲不同類型的元素,元組可以作為參數(shù)傳遞給函數(shù)。
    的頭像 發(fā)表于 04-11 14:43 ?1242次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>13<b class='flag-5'>天</b>:【元組】

    鴻蒙TypeScript學習14:【聯(lián)合類型

    聯(lián)合類型(Union Types)可以通過管道(|)將變量設置多種類型,賦值時可以根據(jù)設置的類型來賦值。
    的頭像 發(fā)表于 04-12 15:28 ?1011次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>14<b class='flag-5'>天</b>:【<b class='flag-5'>聯(lián)合</b><b class='flag-5'>類型</b>】

    鴻蒙語言TypeScript學習18:【泛型】

    泛型(Generics)是一種編程語言特性,允許在定義函數(shù)、類、接口等時使用占位符來表示類型,而不是具體的類型
    的頭像 發(fā)表于 04-16 14:56 ?1063次閱讀
    <b class='flag-5'>鴻蒙語言</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b><b class='flag-5'>第</b>18<b class='flag-5'>天</b>:【泛型】

    鴻蒙TypeScript學習21:【聲明文件】

    TypeScript 作為 JavaScript 的超集,在開發(fā)過程中不可避免要引用其他第三方的 JavaScript 的庫。
    的頭像 發(fā)表于 04-19 15:02 ?1319次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>TypeScript</b><b class='flag-5'>學習</b>21<b class='flag-5'>天</b>:【聲明文件】
    孟州市| 道真| 宜宾县| 新兴县| 大姚县| 静海县| 稷山县| 山东| 桃园市| 陆良县| 勐海县| 阿鲁科尔沁旗| 新沂市| 安西县| 平顶山市| 肥西县| 冷水江市| 扶风县| 察隅县| 房产| 美姑县| 宣威市| 竹溪县| 外汇| 凌云县| 鱼台县| 阿荣旗| 双牌县| 宁海县| 长白| 沅江市| 房产| 称多县| 邢台县| 平陆县| 伽师县| 新沂市| 六枝特区| 宝应县| 海晏县| 奉贤区|