zoukankan      html  css  js  c++  java
  • Typescript中泛型<T>详细讲解

    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);
    我们的第一个值是字符串,第二个值是数字
    
    作者:明月人倚楼
    出处:https://www.cnblogs.com/IwishIcould/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    2015年中国互联网十大牛逼词汇
    考上好大学,然后进入IT行业是穷人孩子晋级中产的唯一出路?
    Redis中hash表中的field的value自增可以用hincrby
    如何学好编程(四)——这种方法真的有用吗
    挑战编程题(三)
    C++ 单链表的基本算法
    挑战编程题(二)
    程序员到底需要学习多少东西??
    Erlang 进制转换
    Erlang基础知识集锦
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/15024439.html
Copyright © 2011-2022 走看看