在TypeScript中,泛型是一種強(qiáng)大的工具,它使我們能夠編寫更靈活和可重用的代碼。泛型允許我們?cè)诙x函數(shù)、類或接口時(shí)使用類型參數(shù)來表示未知的類型。在泛型中,常見的類型參數(shù)命名約定包括T、K和V。
當(dāng)你第一次看到 TypeScript 泛型中的? T
?時(shí),是不是覺得很奇怪?
圖中的? T
?稱為泛型類型參數(shù),它是我們希望傳遞給恒等函數(shù)的類型占位符。
就像傳遞參數(shù)一樣,我們獲取用戶指定的實(shí)際類型,并將其鏈接到參數(shù)類型和返回值類型。
那么? T
?是什么意思呢?圖中的泛型類型參數(shù)?T
?代表Type,實(shí)際上,? T
?可以替換為任何有效的名稱。除了 之外T
,常見的泛型變量還有 ?K
?、?V
?、?E
? 等。
- K(Key):表示對(duì)象中key的類型
- V(Value):表示對(duì)象中值的類型
- E(Element):表示元素類型
當(dāng)然,您不必只定義一個(gè)類型參數(shù),您可以引入任意數(shù)量的類型參數(shù)。這里我們引入了一個(gè)新的類型參數(shù)U
,它擴(kuò)展了我們定義的恒等函數(shù)。
在調(diào)用恒等?函數(shù)時(shí),我們可以顯式指定泛型參數(shù)的實(shí)際類型。當(dāng)然,你也可以不指定泛型參數(shù)的類型,讓TypeScript自動(dòng)幫我們完成類型推斷。
看完上面的動(dòng)畫,你是否已經(jīng)了解泛型類型參數(shù)了呢?