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

TypeScript 泛型的概念和基本使用

這篇具有很好參考價值的文章主要介紹了TypeScript 泛型的概念和基本使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

什么是TypeScript 泛型?

  • 在定義函數(shù),接口,類的時候不能預(yù)先確定使用的數(shù)據(jù)類型,而是在調(diào)用使用這些函數(shù),接口,類的時候才能確定的數(shù)據(jù)類型;

1,單個泛型的參數(shù)

例如通過使用any這種方式,value1的類型隨著傳入的類型數(shù)據(jù)而變化:

function myfunction01(value1: any, value2: number): any[]{
	let arr: any[] = [value1, value2]
	return arr
}
myfunction01('123456', 111);
myfunction01(123456, 111);

改為泛型之后:

function myfunction01<T>(value1: T, value2: T): T[]{
	// let arr: T[] = [value1, value2]
	let arr: Array<T> = [value1, value2]
	return arr
}
myfunction01<string>('123456', '1111');
myfunction01<number>(123456, 111);

2,多個泛型的參數(shù)

function myfunction01<T, X>(value1: T, value2: X): [T, X]{
	return [value1, value2]
}
myfunction01<string, number>('123456', 1111);

3,泛型接口

泛型接口:接口也可以配合泛型來使用,以增加其靈活性,增強(qiáng)其復(fù)用性

interface 接口名<類型變量1,類型變量2> {
  變量:類型變量1,
  變量:類型變量2
}

使用:

interface MyArray<T> {
    length: T,
    data:string[]
    push(n: T): T,
    pop(): void,
    reverse(): T[]
}
const obj: MyArray<number> = {
  length: 11,
  push (o){ return o },
  pop: function () {},
  reverse: () => [1, 2],
  data: ['1', '1']
}
  1. 在接口名稱的后面添加 <類型變量>,那么,這個接口就變成了泛型接口。
  2. 接口的類型變量,對接口中所有其他成員可見,也就是接口中所有成員都可以使用類型變量。
  3. 使用泛型接口時,需要顯式指定具體的類型。

4,泛型工具類型

泛型工具類型:TS 內(nèi)置了一些常用的工具類型,來簡化 TS 中的一些常見操作

說明:它們都是基于泛型實現(xiàn)的(泛型適用于多種類型,更加通用),并且是內(nèi)置的,可以直接在代碼中使用。 這些工具類型有很多,先來學(xué)習(xí)以下3個:

① Partial

將一個對象類型中的所有屬性變?yōu)榭蛇x屬性;

type User = {
	id: number;name: string;age: number;
}
type UpdatedPerson = Partial<User>;

得到的 UpdatedPerson 類型與下面的類型定義是相同的:

type UpdatedPerson = {
	id?: number;name?: string;age?: number;
}
② Readonly

將Type 所有屬性都設(shè)置為 readonly(只讀)。

type Props =  {
  id: string
  children: number[]
}
type ReadonlyProps = Readonly<Props>

構(gòu)造出來的新類型 ReadonlyProps 結(jié)構(gòu)和 Props 相同,但所有屬性都變?yōu)橹蛔x的。不可修改

③ Pick

Pick<Type, Keys> 從 Type 中選擇一組屬性來構(gòu)造新類型。文章來源地址http://www.zghlxwxcb.cn/news/detail-635716.html

type Props = {
  id: string
  title: string
  children: number[]
}
type PickProps = Pick<Props, 'id' | 'title'>
  1. Pick 工具類型有兩個類型參數(shù):1 表示選擇誰的屬性 2 表示選擇哪幾個屬性。 2. 其中第二個類型變量,如果只選擇一個則只傳入該屬性名即可。
  2. 第二個類型變量傳入的屬性只能是第一個類型變量中存在的屬性。
  3. 構(gòu)造出來的新類型 PickProps,只有 id 和 title 兩個屬性類型。

到了這里,關(guān)于TypeScript 泛型的概念和基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(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ī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

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

相關(guān)文章

  • TypeScript 關(guān)于對【泛型】的定義使用解讀

    TypeScript 關(guān)于對【泛型】的定義使用解讀

    泛型 (Generics)是指在 定義函數(shù)、接口或類 的時候, 不預(yù)先指定具體的類型 ,而在 使用的時候再指定類型 的一種特性 。使用泛型 可以 復(fù)用類型并且讓類型更加靈活 泛型實現(xiàn)類型參數(shù)化: 在定義這個函數(shù)時, 我不決定這些參數(shù)的類型 而是讓調(diào)用者以參數(shù)的形式告知,我

    2024年02月13日
    瀏覽(18)
  • 【TypeScript】TypeScript中的泛型

    定義一個函數(shù)或類時,有些情況下無法確定其中要使用的具體類型(返回值、參數(shù)、屬性的類型不能確定),此時泛型便能夠發(fā)揮作用。 舉個例子: 上例中,test函數(shù)有一個參數(shù)類型不確定,但是能確定的時其返回值的類型和參數(shù)的類型是相同的,由于類型不確定所以參數(shù)和

    2024年02月09日
    瀏覽(30)
  • 16.【TypeScript 教程】TypeScript 泛型(Generic)

    本節(jié)開始介紹 TypeScript 一些進(jìn)階知識點(diǎn),第一個要介紹的泛型是 TypeScript 中非常重要的一個概念,它是一種用以增強(qiáng)函數(shù)、類和接口能力的非??煽康氖侄?。 使用泛型,我們可以輕松地將那些輸入重復(fù)的代碼,構(gòu)建為可復(fù)用的組件,這給予了開發(fā)者創(chuàng)造靈活、可重用代碼的能

    2024年01月18日
    瀏覽(39)
  • typeScript(泛型篇)

    軟件工程中,我們不僅要創(chuàng)建一致的定義良好的API,同時也要考慮可重用性。 組件不僅能夠支持當(dāng)前的數(shù)據(jù)類型,同時也能支持未來的數(shù)據(jù)類型,這在創(chuàng)建大型系統(tǒng)時為你提供了十分靈活的功能。 在像C#和Java這樣的語言中,可以使用 泛型 來創(chuàng)建可重用的組件,一個組件可以

    2024年02月10日
    瀏覽(18)
  • TypeScript 進(jìn)階之泛型

    避免代碼重復(fù)和創(chuàng)建可重用類型是編寫干凈代碼的重要部分。 將所有類型屬性都設(shè)置為可選 Required 與 Partial 相反。它構(gòu)造一個類型,其中需要該類型的所有屬性。它可用于確保沒有可選屬性出現(xiàn)在類型中。 多屬性的對象中摘取某些屬性。 鍵可以是字符串文字或字符串文字的

    2024年01月23日
    瀏覽(24)
  • TypeScript中的泛型(泛型函數(shù)、接口、類、泛型約束)

    一、泛型函數(shù) TypeScript 泛型是一種可以使代碼具有更高的可重用性和泛化能力的特性 。通過泛型,我們可以定義一種通用的類型或函數(shù),使其能夠應(yīng)對多種類型的輸入。泛型在類、函數(shù)、接口等多種場景下都可以使用。 具體來說,在定義泛型函數(shù)時,我們可以使用來表示一

    2024年02月11日
    瀏覽(23)
  • TypeScript的基本使用(1)

    這章節(jié)主要講述的是ts和js的區(qū)別和一些其他用法,對于新手學(xué)習(xí)ts的同學(xué)來說是不錯的選擇哦 ? ? ? ? 聲明數(shù)字類型? ? ? ? ? ? 聲明字符串類型: ? ? ? ? 聲明布爾類型 ? ? ? ? 聲明undefined ? ? ? ? 聲明null類型的數(shù)據(jù) ? ? ? ? 聲明any。這里相當(dāng)于關(guān)閉了類型檢測,后續(xù)

    2024年02月06日
    瀏覽(12)
  • TypeScript - 泛型 Generics(通俗易懂詳細(xì)教程)

    TypeScript - 泛型 Generics(通俗易懂詳細(xì)教程)

    關(guān)于概念,本文不會過多敘述。 先來看個例子,體會一下泛型解決的問題吧。 我們定義一個 print 函數(shù),這個函數(shù)的功能是把傳入的參數(shù)打印出來,最后再返回這個參數(shù),傳入?yún)?shù)的類型是 string ,函數(shù)返回類型為 string 。 假如現(xiàn)在需求變了,我還需要打印 number 類型,請問怎

    2023年04月15日
    瀏覽(32)
  • TypeScript 學(xué)習(xí)筆記 環(huán)境安裝-類型注解-語法細(xì)節(jié)-類-接口-泛型

    TypeScript 學(xué)習(xí)筆記 環(huán)境安裝-類型注解-語法細(xì)節(jié)-類-接口-泛型

    JavaScript的變量類型相當(dāng)于是動態(tài)類型,可以跟隨著賦值的改變而類型改變,函數(shù)的參數(shù)也沒有設(shè)定類型,所以在定位錯誤以及安全性上不太夠。 說明 1.TS不能被JS解析器直接執(zhí)行,需要編譯成JS執(zhí)行 2.即使TS編譯出錯也可以編譯成JS 1.TypeScript是什么? TypeScript 是類型安全的Ja

    2024年02月16日
    瀏覽(36)
  • 100天精通鴻蒙從入門到跳槽——第8天:TypeScript 知識儲備:泛型

    100天精通鴻蒙從入門到跳槽——第8天:TypeScript 知識儲備:泛型

    博主貓頭虎的技術(shù)世界 ?? 歡迎來到貓頭虎的博客 — 探索技術(shù)的無限可能! 專欄鏈接 : ?? 精選專欄 : 《面試題大全》 — 面試準(zhǔn)備的寶典! 《IDEA開發(fā)秘籍》 — 提升你的IDEA技能! 《100天精通Golang》 — Go語言學(xué)習(xí)之旅! 《100天精通鴻蒙》 — 從Web/安卓到鴻蒙大師!

    2024年01月20日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包