App下載

TypeScript 泛型中的 K、T 和 V 是什么?

如花的旋律 2024-01-31 14:07:55 瀏覽數(shù) (2168)
反饋

在TypeScript中,泛型是一種強(qiáng)大的工具,它使我們能夠編寫(xiě)更靈活和可重用的代碼。泛型允許我們?cè)诙x函數(shù)、類(lèi)或接口時(shí)使用類(lèi)型參數(shù)來(lái)表示未知的類(lèi)型。在泛型中,常見(jiàn)的類(lèi)型參數(shù)命名約定包括T、K和V。

當(dāng)你第一次看到 TypeScript 泛型中的? T ?時(shí),是不是覺(jué)得很奇怪?

1_XjuH8GykvoOL77Q1mtQazQ

圖中的? T ?稱(chēng)為泛型類(lèi)型參數(shù),它是我們希望傳遞給恒等函數(shù)的類(lèi)型占位符。

就像傳遞參數(shù)一樣,我們獲取用戶指定的實(shí)際類(lèi)型,并將其鏈接到參數(shù)類(lèi)型和返回值類(lèi)型。

1_58mhLNgQAejgD8p_S0UjNw

1_SYbldGfuNQhNmE4-Lv4bdQ

那么? T ?是什么意思呢?圖中的泛型類(lèi)型參數(shù)?T?代表Type,實(shí)際上,? T ?可以替換為任何有效的名稱(chēng)。除了 之外T,常見(jiàn)的泛型變量還有 ?K?、?V?、?E? 等。

  • K(Key):表示對(duì)象中key的類(lèi)型
  • V(Value):表示對(duì)象中值的類(lèi)型
  • E(Element):表示元素類(lèi)型

1_WVWRHxEfT2j6XKZddiIhSw

當(dāng)然,您不必只定義一個(gè)類(lèi)型參數(shù),您可以引入任意數(shù)量的類(lèi)型參數(shù)。這里我們引入了一個(gè)新的類(lèi)型參數(shù)U,它擴(kuò)展了我們定義的恒等函數(shù)。

1_oq5VVDHQtYuELwcV0wRjLA

1_tMSUrnvbQogNRk3rRk0bog

在調(diào)用恒等?函數(shù)時(shí),我們可以顯式指定泛型參數(shù)的實(shí)際類(lèi)型。當(dāng)然,你也可以不指定泛型參數(shù)的類(lèi)型,讓TypeScript自動(dòng)幫我們完成類(lèi)型推斷。

1_A_X4xCcHUe6ythaN_UNwsQ

1_qimef85ZW32BQ6nJbIor9g

看完上面的動(dòng)畫(huà),你是否已經(jīng)了解泛型類(lèi)型參數(shù)了呢?


0 人點(diǎn)贊