TypeScript 最後一塊型別拼圖:Generics type

--

Generics

是一種特別的型別,是只在定義宣告時,先不指定具體的型別,而是可以執行的時候才確認型別的特殊方式。

在 array of number 中可以使用:

let array1: number[] = [1, 2, 3];

來指定型別,其實也可以使用

let array2: Array<number> = [1, 2, 3];

來做同樣的處理,在 IDE 中,把滑鼠指向 array2 會發現他顯示的跟第一個是一樣的:

今天假設有一個函式可以回傳最後一個值:

就可以發現最終結果會得到數字型別,而如果想要處理字串,則會報錯。

但我們又希望去可以處理的話,要怎麼辦呢?

第一個想到的作法是可以使用聯合型別

但這都是訂死的,並不能完全解決問題,所以就輪到 Generics type 登場了,我們可以在函數前面加上 <> 來指定這是一個 Generics 並且直接使用。

這樣就發現 l1 跟 l2 分別是不同型別了。而 T 是一個約定俗成的寫法。

當然其實我們也可以在呼叫時,直接指名回傳值。

這樣 l3 就會是字串或是布林值

另外一個例子:

在這例子中,我們需要的是兩個分別是不同的型別,除了直接指定之外,還可以使用 Generics 來達成。

可以發現被自動指定型別了,所以有多個不同的 Generics 就可以用逗號隔開。

當然我們也可以直接指定型別:

或是我們想省點事情的話,還可以指定預設的 Generics 型別。

--

--

Hugh's Programming life
Hugh's Programming life

Written by Hugh's Programming life

我是前端兼後端工程師,主要在前端開發,包括 React、Node.js 以及相關的框架和技術。之前曾擔任化工工程師的職位,然而對電腦科技一直抱有濃厚的熱情。後來,我參加了轉職課程並開設這個部落格紀錄我的學習過程。於2020年轉職成功後,我一直持續精進技能、擴展技術範疇跟各種對人生有正面意義的學習,以增加我的工作能力。

No responses yet