Typescript中泛型 詳細講解


1.泛型

在定義函數或者接口或者類的時候,
不能預先確定要使用的數據類型
而是在使用函數、接口、或者類的時候才能夠確定數據類型
這個時候我們就需要使用的是泛型

2.功能描述

我們需要實現一個方法,方法中有兩個參數,
第一參數表示的是傳入的內容值,第二個參數表示的數組的個數(長度)
根據內容值產生對應個數,然后存放在數組中,最后返回來

3.分析上述功能

由於傳入的內容值可能是字符串,也有可能是數字,也有可能是布爾類型的;
只有在傳遞的時候我們才知道數據的類型
這個時候我們就需要使用泛型<T>

4.實現上述功能

function getArr<T>(cont:T, len:number) :T[]{
    // const arr:T[]=[] //這是一個泛型數組 或者這樣寫
    const arr: Array<T> = []; //泛型必須要有一個初始值
    for (let i = 0; i < len;i++) {
        arr.push(cont)
    }
    return arr
}
const arr1 = getArr<number>(11.1, 3);
console.log(arr1)

5.簡單說明上述代碼

function getArr<T> 表示該函數中的類型值是不確定的,
只有在傳遞的時候才知道,因此使用了泛型。

cont:T 內容值是泛型

function getArr<T>(cont:T, len:number) :T[]{ }
返回來的是一個數組泛型,數組中值類型不確定

const arr: Array<T> = []; 和 const arr:T[]=[] 
聲明一個數組泛型,必須給一個初始值。【重要】

const arr1 = getArr<number>(11.1, 3); 
傳遞的類型值是數字

6.函數中有多個泛型的參數

// 多個泛型參數的函數:函數中有多個泛型的參數
function getMsg<K, T>(cont1:K, cont2:T):[K,T] {
    return [cont1,cont2]
}
const arr = getMsg<string, number>('哈哈', 2);

7.簡單說明一下上述的代碼

由於第一個類型的值和第二個類型的值都是不確定的,
所以有了泛型
function getMsg<K, T>(cont1:K, cont2:T):[K,T] { }
在使用的時候const arr = getMsg<string, number>('哈哈', 2);
我們的第一個值是字符串,第二個值是數字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM