泛型
要?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)型
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線(xiàn)安全]玩轉(zhuǎn)無(wú)線(xiàn)電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26