TypeScript 為JS 帶來了強類型特性,對于以前用OC這些強類型語言的小伙伴來說還是很熟悉,很習(xí)慣的,也很放心,要不然真的不知道自己傳進(jìn)去的參數(shù)到底是個啥玩意,特別是JS 把函數(shù)直接當(dāng)參數(shù)傳入.但是同時有些函數(shù)處理邏輯完全一樣,唯一不同的就是參數(shù)類型,這就要考慮到使用泛型(Generic),來實現(xiàn)代碼的抽象和復(fù)用
我們來看看具體事例
一. 函數(shù)用法
1 功能,與 2的功能都是返回傳入的參數(shù),但是1 很明顯有警告,這就是typeScript 給出的為給定參數(shù)類型的警告,所以我們應(yīng)該如 2 這樣指定參數(shù)的類型.這兩個函數(shù)功能是沒有有區(qū)別,接下來我們就用泛型來改寫這兩個函數(shù) 如下
經(jīng)過泛型的改寫,我們可以在 stringValue 函數(shù)參數(shù)中傳任何函數(shù),使用如下
當(dāng)然也可以指定返回的參數(shù)
二. 類泛型
? ? ? ? ?類泛型一般用來篩選數(shù)據(jù),特別用在網(wǎng)絡(luò)請求的時候,篩選出指定條件的數(shù)據(jù),用法如下:
1 和2是一種先聲明后使用方式,在正式項目中應(yīng)該這么用,給出明確定義,以及相關(guān)注釋方便維護(hù).
3 是使用定義的篩選類的使用方式,初始化時候傳入處理條件,
JS 的泛型,跟Swift的泛型 基本一樣,其實主要是用來限制類型,保證嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)結(jié)構(gòu)類型,保證程序按照設(shè)計者思路執(zhí)行下去,提高程序的穩(wěn)定性,杜絕一些類型不匹配的錯誤.