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

TypeScript基礎(chǔ)知識:高級數(shù)據(jù)類型

這篇具有很好參考價(jià)值的文章主要介紹了TypeScript基礎(chǔ)知識:高級數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????TypeScript 是一種靜態(tài)類型檢查的 JavaScript 超集,它提供了許多強(qiáng)大的高級數(shù)據(jù)類型,可以幫助我們更好地定義和操作數(shù)據(jù)。本文將深入介紹 TypeScript 的高級數(shù)據(jù)類型,包括交叉類型、聯(lián)合類型和映射類型,并通過示例代碼演示它們的用法和優(yōu)勢。

一、交叉類型(Intersection Types)

????????交叉類型用于將多個類型合并為一個新的類型。通過使用?&?符號,我們可以將多個類型進(jìn)行交叉操作。交叉類型的結(jié)果是一個包含了所有交叉類型成員的新類型。

interface Person {
  name: string;
  age: number;
}

interface Employee {
  companyId: string;
  position: string;
}

type EmployeePerson = Person & Employee;

const employeePerson: EmployeePerson = {
  name: "John",
  age: 30,
  companyId: "ABC123",
  position: "Manager",
};

在上面的示例中,我們定義了?Person??Employee?接口,然后使用交叉類型?EmployeePerson?將它們合并為一個新的類型。這樣,EmployeePerson?類型就同時具有了?Person??Employee?接口中的屬性和方法。

二、聯(lián)合類型(Union Types)

????????聯(lián)合類型允許一個值具有多種可能的類型。通過使用?|?符號,我們可以將多個類型定義為一個聯(lián)合類型。當(dāng)我們需要處理多個類型的值時,聯(lián)合類型非常有用。

type Status = "success" | "error" | "loading";

function getStatusMessage(status: Status): string {
  switch (status) {
    case "success":
      return "Operation successful";
    case "error":
      return "An error occurred";
    case "loading":
      return "Loading data";
    default:
      throw new Error("Invalid status");
  }
}

const successMessage = getStatusMessage("success");
console.log(successMessage); // Output: "Operation successful"

在上述示例中,我們定義了一個?Status?類型,它只能取三個字符串字面量值之一。然后,我們編寫了一個函數(shù)?getStatusMessage,它接受一個?Status?類型的參數(shù),并返回相應(yīng)的消息。通過使用聯(lián)合類型,我們可以在函數(shù)內(nèi)部使用?switch?語句來處理不同的狀態(tài)。

三、映射類型(Mapped Types)

????????映射類型允許我們基于現(xiàn)有類型創(chuàng)建新類型。通過使用泛型和索引簽名,我們可以對現(xiàn)有類型的屬性進(jìn)行修改、添加或刪除。

interface Person {
  name: string;
  age: number;
}

type ReadonlyPerson = Readonly<Person>;
// ReadonlyPerson: { readonly name: string; readonly age: number; }

type PartialPerson = Partial<Person>;
// PartialPerson: { name?: string; age?: number; }

type PickPerson = Pick<Person, "name">;
// PickPerson: { name: string; }

type RecordPerson = Record<"id", Person>;
// RecordPerson: { id: Person; }

在上面的示例中,我們使用了幾個常見的映射類型。Readonly<T>?將屬性設(shè)置為只讀,Partial<T>?將屬性設(shè)置為可選,Pick<T, K>??T?中選擇指定的屬性,Record<K, T>?將屬性值映射到指定的類型。

總結(jié)

????????本文介紹了 TypeScript 的高級數(shù)據(jù)類型,包括交叉類型、聯(lián)合類型和映射類型。通過合理地運(yùn)用這些高級數(shù)據(jù)類型,我們可以更好地定義和操作數(shù)據(jù),提高代碼的可讀性和可維護(hù)性。希望這篇文章對你理解 TypeScript 的高級數(shù)據(jù)類型有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-797405.html

到了這里,關(guān)于TypeScript基礎(chǔ)知識:高級數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【03】基礎(chǔ)知識:typescript中的函數(shù)

    函數(shù)聲明法 函數(shù)表達(dá)式/匿名函數(shù) 1、typescript 中定義函數(shù)傳參 函數(shù)聲明 函數(shù)表達(dá)式/匿名函數(shù) 2、可選參數(shù) 在 es5 中,方法的形參和實(shí)參個數(shù)可以不一樣;但是在 ts 中必須一樣,如果不一樣就需要配置可選參數(shù)。 ts 中 通過【 形參?: 數(shù)據(jù)類型 】形式定義可選參數(shù),代表該參數(shù)

    2024年02月13日
    瀏覽(28)
  • 兩小時快速入門 TypeScript 基礎(chǔ)(一)工作流、基本類型、高級類型

    兩小時快速入門 TypeScript 基礎(chǔ)(一)工作流、基本類型、高級類型

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學(xué)習(xí)方向: 主攻前端方向,也會涉及到服務(wù)端(Node.js 等) ?? 個人狀態(tài): 2023屆本科畢業(yè)生,已拿多個前端 offer(秋招) ?? 未來打算: 為中國的工業(yè)軟件事業(yè)效力 n 年 ?? 推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/

    2024年02月11日
    瀏覽(26)
  • 【01】基礎(chǔ)知識:typescript安裝及使用,開發(fā)工具vscode配置

    【01】基礎(chǔ)知識:typescript安裝及使用,開發(fā)工具vscode配置

    typeScript 是由微軟開發(fā)的一款開源的編程語言。 typeScript 是 javascript 的超級,遵循最新的 es6、es5規(guī)范。 typeScript 擴(kuò)展了 javaScript 的語法。 typeScript 更像后端 java、C# 這樣的面向?qū)ο笳Z言,可以讓 js 開發(fā)大型企業(yè)項(xiàng)目。 全局安裝:$ npm install -g typescript 查看 typescript 版本:$ ts

    2024年02月13日
    瀏覽(35)
  • TypeScript之高級類型

    除了 string 、 number 、 boolean ?這種基礎(chǔ)類型外,在? typescript ?類型聲明中還存在一些高級的類型應(yīng)用 這些高級類型,是 typescript 為了保證語言的靈活性,所使用的一些語言特性。這些特性有助于我們應(yīng)對復(fù)雜多變的開發(fā)場景 常見的高級類型有如下: 交叉類型 聯(lián)合類型 類型

    2024年02月06日
    瀏覽(21)
  • TypeScript高級類型:聯(lián)合類型、交叉類型和類型別名

    TypeScript 是一門強(qiáng)類型語言,其高級類型功能使得開發(fā)者能夠更加靈活地定義類型并對其進(jìn)行操作,以便于更好地編寫可維護(hù)和可擴(kuò)展的代碼。 在本文中,將著重討論三種高級類型:聯(lián)合類型、交叉類型和類型別名。我們將詳細(xì)介紹這些類型,并且還會提供一些有用的代碼示

    2024年02月10日
    瀏覽(40)
  • 【前端進(jìn)階】-TypeScript高級類型 | 交叉類型、索引簽名類型、映射類型

    【前端進(jìn)階】-TypeScript高級類型 | 交叉類型、索引簽名類型、映射類型

    前言 博主主頁????蠟筆雛田學(xué)代碼 專欄鏈接????【TypeScript專欄】 上篇文章講解了TypeScript部分高級類型 詳細(xì)內(nèi)容請閱讀如下:?? 【前端進(jìn)階】-TypeScript高級類型 | 類的初始化、構(gòu)造函數(shù)、繼承、成員可見性 今天來學(xué)習(xí)TypeScript另外一些高級類型! 感興趣的小伙伴一起來

    2023年04月08日
    瀏覽(16)
  • 前端TypeScript學(xué)習(xí)day03-TS高級類型

    前端TypeScript學(xué)習(xí)day03-TS高級類型

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動力,如果看完對你有幫助,請留下您的足跡) ? ? ? ? ?? 目錄 TypeScript 高級類型 class 類 class繼承? extends implements? 類成員可見性? public? protected? private? ?readonly 兼容性 類型兼容性 接口兼容性? 函數(shù)兼容性? TypeScri

    2024年02月08日
    瀏覽(20)
  • TypeScript -- 基礎(chǔ)類型

    TypeScript -- 基礎(chǔ)類型

    錯誤示范 正確寫法 布爾類型 – boolean 賦值為true 和 false 賦值為Boolean()對象 數(shù)字類型 – number 使用 number 定義數(shù)值類型 編譯結(jié)果 字符串類型 – string 數(shù)組類型 「類型 + 方括號」 泛型 聯(lián)合類型 元組類型 枚舉類型 – enum 枚舉定義 枚舉項(xiàng)有兩種類型:常數(shù)項(xiàng)(constant member)和

    2024年02月15日
    瀏覽(20)
  • TypeScript的基礎(chǔ)類型

    1. boolean類型: boolean表示布爾值類型,即true和false。例: 2. number類型: number表示數(shù)字類型,包括整數(shù)和浮點(diǎn)數(shù)。例: 3. string類型: string表示字符串類型。例: 4. void類型: void表示沒有返回值的函數(shù)類型。例: 5. null和undefined類型: null和undefined表示null和undefined值的類型。例

    2024年02月11日
    瀏覽(18)
  • 【TypeScript】基礎(chǔ)類型

    【TypeScript】基礎(chǔ)類型

    https://nodejs.org/en 終端中可以查到版本號即安裝成功。 然后,終端執(zhí)行 npm i typescript -g 安裝 TypeScript 。 查到版本號即安裝成功。 終端中先執(zhí)行 tsc --init ,然后執(zhí)行 tsc -w 。發(fā)現(xiàn)原本TS文件夾中只有index.ts,現(xiàn)在多了兩個文件。 再開一個終端,執(zhí)行 即可輸出。 同樣支持模板字符

    2024年02月12日
    瀏覽(53)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包