zoukankan      html  css  js  c++  java
  • ts中的泛型

    /**
    * 泛型:软件工程中,我们不仅要创造定义良好的API,同时也要考虑可重用行,组件不仅能
    * 够支持当前的数据类型,同时也能够支持未来数据类型。
    * 通俗理解:泛型就是解决类、接口、方法的复用性以及对不特定类型的数据的支持
    *
    */
    function getDate<T>(value:T):T {
      return value;
    }
    getDate<number>(123);
    getDate<string>('123');
    // 类的泛型
    class minclass<T> {
      list:T[] = [];
      add(value:T):void {
        this.list.push(value);
      }
      min():T {
        return this.list[0];
      }
    }
    var minMy = new minclass<number>();
    //函数类泛型接口
    interface ConFn {
      <T>(value1:T,value2:T):T
    }
    var myFn:ConFn = function<T>(value:T):T {
      return value;
    }
    // 类作为参数来约束传入数据的合法性
    class Artic {
      title: string | undefined;
      desc: string|undefined;
      status:number | undefined;
      constructor(params:{
        title: string | undefined,
        desc: string|undefined,
        status?:number | undefined,
      }){

      }
    }
    class MySQLdb<T>{
      add(info:T):boolean{
        return true;
      }
    }
    var a = new Artic({
      desc: '123',
      status: 123,
      title: '123'
    });
    var b = new MySQLdb<Artic>();
    b.add(a);
  • 相关阅读:
    Linux学习第一天————了解root用户和基本的shell命令
    String对象常量池特性对synchronized对象的影响
    JDBC中执行SQL语句的方式
    DEVICE_ID
    Android ScrollView与RecyclerView滑动冲突问题
    Activity与intent解析
    intent初步解析
    用Intent传递数据
    代码实现
    Unity 自定义日志保存
  • 原文地址:https://www.cnblogs.com/windcat/p/11747539.html
Copyright © 2011-2022 走看看