了解TypeScript中的泛型(Generics)多類型參數

了解TypeScript中的泛型(Generics)多類型參數

TypeScript 泛型(generics)的多類型參數

TypeScript 泛型(generics)是一種可以讓你在定義函式、類別或是接口時,可以接受多種類型的參數,而不需要指定具體的類型。這樣的設計可以讓你在定義函式、類別或是接口時,可以更加彈性的接受不同的參數,而不需要重新定義函式、類別或是接口。

TypeScript 泛型的語法是使用 angle brackets 來定義參數的類型,例如:

function identity<T>(arg: T): T {
    return arg;
}

上面的程式碼定義了一個名為 identity 的函式,它接受一個參數 arg,並且傳回相同的參數。T 是一個 type variable,它代表一個未知的類型,在函式執行時才會決定。

我們可以使用不同的類型來呼叫 identity 函式:

let output = identity<string>("myString");  // type of output will be 'string'

我們也可以使用 type argument inference 來簡化上面的程式碼:

let output = identity("myString");  // type of output will be 'string'

TypeScript 泛型也可以用於類別和接口,例如:

class GenericNumber<T> {
    zeroValue: T;
    add: (x: T, y: T) => T;
}

let myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function(x, y) { return x + y; };

上面的程式碼定義了一個名為 GenericNumber 的類別,它接受一個參數 T,代表一個未知的類型,在類別執行時才會決定。

TypeScript 泛型的多類型參數可以讓你在定義函式、類別或是接口時,可以更加彈性的接受不同的參數,而不需要重新定義函式、類別或是接口。它可以讓你的程式碼更加簡潔,並且更容易維護。

推薦閱讀文章

推薦閱讀文章

            <a href="https://www.tutorialsteacher.com/typescript/typescript-generics">Typescript Generics</a><br>
            <a href="https://www.typescriptlang.org/docs/handbook/generics.html">Typescript Generics Handbook</a><br>
            <a href="https://www.sitepoint.com/typescript-generics-what-why-how/">Typescript Generics: What, Why and How</a><br>
            <a href="https://www.c-sharpcorner.com/article/understanding-typescript-generics/">Understanding Typescript Generics</a><br>
            <a href="https://www.freecodecamp.org/news/typescript-generics-explained-in-plain-english/">Typescript Generics Explained in Plain English</a

延伸閱讀本站文章

更多TypeScript相關文章

推薦學習youtube影片

發佈留言