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

對TS里泛型的理解

這篇具有很好參考價值的文章主要介紹了對TS里泛型的理解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

對TS里泛型的理解

概念

  • 當(dāng)我們定義一個變量不確定類型的時候有兩種解決方式:
  • 使用any(使用any定義時存在的問題:雖然已知道傳入值的類型但是無法獲取函數(shù)返回值的類型;另外也失去了ts類型保護的優(yōu)勢)
  • 使用泛型(泛型指的是在定義函數(shù)/接口/類型時,不預(yù)先指定具體的類型,而是在使用的時候在指定類型限制的一種特性。)
  • 以上來自:TS中的泛型

簡述

  • 在 TypeScript 中,泛型是一種參數(shù)化類型的機制,它可以在不同的數(shù)據(jù)類型之間共享代碼(例如同一個函數(shù),參數(shù)可以是字符數(shù)組,可以是數(shù)字?jǐn)?shù)組,至于是字符還是數(shù)字類型,在構(gòu)造函數(shù)的時候會預(yù)先定義一個類型變量。以便于調(diào)用的時候為其賦值,確認(rèn)何種類型。)。泛型可以用于函數(shù)、類和接口等語法結(jié)構(gòu)。

在函數(shù)中使用泛型

可以使用尖括號<>來表示泛型類型變量,例如:

function identity<T>(arg: T): T {
  return arg;
}

let output = identity<string>("myString");  // output 的類型為 string

let outputNum = identity<number>(123);  // outputNum 的類型為number

這里,函數(shù) identity 接收一個類型為 T 的參數(shù) arg,并返回一個同樣類型的值。

調(diào)用 identity(“myString”) 即表示傳入一個字符串類型的參數(shù),并返回一個字符串類型的值。此時 output 的類型被推斷為 string。

在類中使用泛型

可以在類名后方使用尖括號來聲明泛型類型變量,例如:

class GenericNumber<T> {
  zeroValue: T;      // 此處定義了一個泛型變量 zeroValue
  add: (x: T, y: T) => T;
}

let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };

此時類 GenericNumber 接收一個泛型類型變量 T,并在類中使用了該變量。我們可以創(chuàng)建一個 GenericNumber 的實例,指定 T 為 number 類型,并可以訪問該實例的屬性和方法。

在接口中使用泛型

可以在定義接口時使用尖括號來聲明泛型類型變量,例如:

interface GenericIdentityFn<T> {
  (arg: T): T;
}

function identity<T>(arg: T): T {
  return arg;
}

let myIdentity: GenericIdentityFn<number> = identity;

這里,我們定義了一個接口 GenericIdentityFn,并指定它的函數(shù)屬性接受一個類型變量 T 類型的參數(shù),并返回一個同樣類型的值。

我們實現(xiàn)了一個函數(shù) identity,并將其賦值給 myIdentity,同時指定類型變量 T 為 number。文章來源地址http://www.zghlxwxcb.cn/news/detail-492308.html

到了這里,關(guān)于對TS里泛型的理解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 泛型的通配符

    泛型的通配符

    類型的上界決定了泛型的范圍。 我們發(fā)現(xiàn)指定了泛型的上界為數(shù)值類Number時,傳入Boolean類型就會報錯。 如果沒有指定類型的邊界,可以認(rèn)可 T extends Object,當(dāng)指定了某個類型為上界,那么只接受某類型本身和子類型作為E的類型實參 我們要實現(xiàn)一個類去找數(shù)組的一個的最大值

    2023年04月08日
    瀏覽(21)
  • 【Java】泛型的簡單使用

    【Java】泛型的簡單使用

    在了解泛型之前我們先了解什么是包裝類,在Java中由于基本類型不是繼承自O(shè)bject,為了在泛型代碼中可以支持基本類型,Java給每個基本類型都對應(yīng)了一個包裝類型 基本數(shù)據(jù)類型 包裝類 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 除了 Integer

    2024年02月04日
    瀏覽(38)
  • Java語言-----泛型的認(rèn)識

    Java語言-----泛型的認(rèn)識

    目錄 一.什么是泛型 二.泛型類的使用 2.1泛型類的定義 ?2.2泛型類的數(shù)組使用 三.泛型的上界? 四.泛型的方法 五.泛型與集合 ??個人主頁:?tq02的博客_CSDN博客-C語言,Java領(lǐng)域博主 ???夢的目標(biāo):努力學(xué)習(xí),向Java進發(fā),拼搏一切,讓自己的未來不會有遺憾。 ???歡迎各位→點

    2023年04月23日
    瀏覽(24)
  • Java中泛型的詳細(xì)介紹

    引言: ????????Java語言中的泛型是一種強大的特性,它允許我們在編寫代碼時指定類、接口和方法的參數(shù)類型。通過使用泛型,我們可以提高代碼的重用性、可讀性和安全性。在本博客中,我們將詳細(xì)介紹Java中泛型的知識。 ????????泛型是Java 5中引入的一個新特性。

    2024年01月18日
    瀏覽(23)
  • 簡述泛型的基本使用和作用

    簡述泛型的基本使用和作用

    在上一篇文章中,給大家講解了泛型的概念、作用、使用場景,以及泛型集合、泛型接口和泛型類的用法,但受限于篇幅,并沒有把泛型的內(nèi)容講解完畢。所以今天我們會繼續(xù)學(xué)習(xí)泛型方法、泛型擦除,以及通配符等的內(nèi)容,希望大家繼續(xù)做好學(xué)習(xí)的準(zhǔn)備哦。 全文大約【 4

    2024年02月07日
    瀏覽(17)
  • C#(六十二)之泛型的約束

    C#(六十二)之泛型的約束

    類型約束 基類約束有兩個重要的目的。 1:它允許在泛型類中使用有約束指定的基類成員。 2:確保只能使用支持指定基類或派生類的類型實例。 約束是使用?where?上下文指定的。 下表列出了五種類型的約束: 約束 說明 T:struct 類型參數(shù)必須是值類型。可以指定除

    2024年02月17日
    瀏覽(20)
  • Java泛型的繼承和通配符

    Java泛型的繼承和通配符

    繼承 兩個容器所容納的類類型是有子類父類的關(guān)系的 但是容器之間沒有 反證法: 假設(shè)做法成立 list1=list2 list 指向list2的容器實例 list1.add(123)可以成立,明顯標(biāo)注 String 后是不行的 所以 類SuperA是類A的父類,則 GSuperA 與 GA 是并列關(guān)系沒有子父關(guān)系 類SuperA是類A的父類或接口

    2024年01月17日
    瀏覽(25)
  • 【java數(shù)據(jù)結(jié)構(gòu)】泛型的初步認(rèn)識(2)

    【java數(shù)據(jù)結(jié)構(gòu)】泛型的初步認(rèn)識(2)

    hellohello~,大家好????,這里是E綿綿呀???,如果覺得這篇文章還不錯的話還請點贊????收藏??????關(guān)注????,如果發(fā)現(xiàn)這篇文章有問題的話,歡迎各位評論留言指正,大家一起加油!一起chin up!????? ?? 個人主頁: E綿綿的博客 ?? 所屬專欄: JAVA知識點專欄

    2024年04月26日
    瀏覽(27)
  • 編程中泛型的使用規(guī)則和限制是什么?

    泛型是一種程序設(shè)計風(fēng)格,它允許程序員在編寫代碼時使用一些以后才指定的類型,在實例化時作為參數(shù)指明這些類型。泛型主要用于實現(xiàn)通用的數(shù)據(jù)結(jié)構(gòu),例如集合、映射、列表等,使得這些數(shù)據(jù)結(jié)構(gòu)可以存儲多種類型的元素。 在泛型使用之前,程序員需要自己指定數(shù)據(jù)類

    2023年04月24日
    瀏覽(23)
  • Scala中的類型檢查和轉(zhuǎn)換,以及泛型,scala泛型的協(xié)變和逆變

    說明 (1) obj.isInstanceOf[T]:判斷 obj 是不是T 類型。 (2) obj.asInstanceOf[T]:將 obj 強轉(zhuǎn)成 T 類型。 (3) classOf 獲取對象的類名。 案例 1.說明 (1)枚舉類:需要繼承 Enumeration (2)應(yīng)用類:需要繼承App 2. 案例 1.說明 使用 type 可以定義新的數(shù)據(jù)數(shù)據(jù)類型名稱,本質(zhì)上就

    2024年02月10日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包