目錄
TypeScript 泛型(generics)的多類型參數
TypeScript 泛型(generics)是一種可以讓你在定義函式、類別或是接口時,可以接受多種類型的參數,而不需要指定具體的類型。這樣的設計可以讓你在定義函式、類別或是接口時,可以更加彈性的接受不同的參數,而不需要重新定義函式、類別或是接口。
TypeScript 泛型的語法是使用 angle brackets 來定義參數的類型,例如:
function identity(arg: T): T {
return arg;
}
上面的程式碼定義了一個名為 identity 的函式,它接受一個參數 arg,並且傳回相同的參數。T 是一個 type variable,它代表一個未知的類型,在函式執行時才會決定。
我們可以使用不同的類型來呼叫 identity 函式:
let output = identity("myString"); // type of output will be 'string'
我們也可以使用 type argument inference 來簡化上面的程式碼:
let output = identity("myString"); // type of output will be 'string'
TypeScript 泛型也可以用於類別和接口,例如:
class GenericNumber {
zeroValue: T;
add: (x: T, y: T) => T;
}
let myGenericNumber = new GenericNumber();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };
上面的程式碼定義了一個名為 GenericNumber 的類別,它接受一個參數 T,代表一個未知的類型,在類別執行時才會決定。
TypeScript 泛型的多類型參數可以讓你在定義函式、類別或是接口時,可以更加彈性的接受不同的參數,而不需要重新定義函式、類別或是接口。它可以讓你的程式碼更加簡潔,並且更容易維護。
推薦閱讀文章
推薦閱讀文章
Typescript Generics
Typescript Generics Handbook
Typescript Generics: What, Why and How
Understanding Typescript Generics
Typescript Generics Explained in Plain English