泛型

要?jiǎng)?chuàng)建一個(gè)可重用的組件,其中的數(shù)據(jù)類(lèi)型就必須要兼容很多的類(lèi)型,那么如何兼容呢,TypeScript提供了一個(gè)很好的方法:泛型

 

Hello World

要兼容多種數(shù)據(jù)格式,可能會(huì)有人想到any,即

function identify(arg: any): any{    return arg;
}

 

使用any存在一個(gè)問(wèn)題,有可能傳入的值和返回的值不是同一種值,例如,傳入數(shù)字,但是不確定返回的是什么值

要解決這個(gè)問(wèn)題,我們需要引入類(lèi)型變量-一種特殊的變量,只用于表示類(lèi)型不表示值

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

 

給identify添加了類(lèi)型變量T,用來(lái)捕獲傳入值的類(lèi)型,然后將返回值的類(lèi)型也設(shè)置為T(mén),就實(shí)現(xiàn)了傳入值和返回值為同一類(lèi)型值的需求

我們把identify這個(gè)函數(shù)叫做泛型,因?yàn)樗m用于所有類(lèi)型,并且不會(huì)有any類(lèi)型存在的問(wèn)題

使用泛型的方法有兩種:

  1、傳入所有的參數(shù),包括類(lèi)型參數(shù)

let output = identify<string>('qwe');

 

  2、利用類(lèi)型推論--即編譯器會(huì)根據(jù)傳入的參數(shù)自動(dòng)地幫助我們確定T的類(lèi)型

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式