zoukankan      html  css  js  c++  java
  • typescript泛型

    //泛型
    //泛型就是解决类、接口、方法的复用性,以及对不特定数据类型的支持
    //可以支持不特定的数据类型,要求:传入的参数和返回的参数一致
    //T表示泛型(只要是任意大写字母就可以),具体什么类型就是调用这个方法的时候决定的
    function getData<T>(value:T):T{
        return value;
    }
    
    getData<number>(123)
    getData<string>('123')
    
    
    
    //泛型类
    class MinClass<T>{
        public list:T[] = [];
        add(value:T):void{
            this.list.push(value)
        }
        min():T{
            var minNum = this.list[0];
            this.list.map(item=>{
                if(minNum>this.list[i]){
                    minNum = this.list[i]
                }
            })
            return minNum
        }
    }
    
    let m1 = new MinClass<number>();//实力化类,并指定类的T类型代表number
    m1.add(2);
    m1.add(45);
    m1.add(34);
    m1.add(35);
    console.log(m1.min())
    
    
    
    //把类当作参数的泛型类
    class User{
        name:string|undefined;
        age:number|undefined;
        constructor(params:{
            name:string|undefined;
            age?:number|undefined;
        }){
            this.name = params.name;
            this.age = params.age;
        }
    }
    
    class MysqlObj<T>{
        add(user:T):void{
            console.log(user)
        }
    }
    
    let u = new User({
        name:'zhangsan',
        age:12
    })
    
    let ob = new MysqlObj<User>();//类当作参数的泛型类
    ob.add(u)
    
    
    
    //泛型接口(第一种)
    interface ConfigFn{
        <T>(value:T):T;
    }
    let getData2:ConfigFn = function<T>(value:T):T{
        return value;
    }
    getData2<string>('zhangsan');
    getData2<number>(123);
    
    
    
    //泛型接口(第二种)
    interface ConfigFn2<T>{
        (value:T):T;
    }
    function getData3<T>(value:T):T{
        return value;
    }
    let myGetData:ConfigFn2<string> = getData3;
    myGetData('20')
    getData2<number>(123);
  • 相关阅读:
    MVC CONTROLS TOOLKIT
    activemq Example
    OWASP
    ActiveMQ持久化消息的三种方式
    sqlyog
    dotnet压缩
    asp.net ajax 环境 c#与js互调
    asp.net 初步入门使用正则抓取网页信息
    用ASP.NET with C# 绘制曲线图(Curve图)转
    asp.net 中使用excel组件权限设置
  • 原文地址:https://www.cnblogs.com/kaiqinzhang/p/12937690.html
Copyright © 2011-2022 走看看