zoukankan      html  css  js  c++  java
  • TypeScript入门(三)

    一些定义性的文字也是截取的能够从页面上了解意思,别人总结还是很有用的,更加深刻一些;

    泛型: 软件工程中,在创建一致的定义良好的api时也要考虑到可重用性;组件不仅能够支持当前的数据类型,同时也能够支持未来数据类型;

    泛型就是解决 类 接口 方法的复用性,以及对不特定数据类型的支持;要求:输如的参数很返回的参数一致;

    (1)泛型变量,类;

    //1.同时返回string或number类型
    //any虽然可以,但是放弃了类型检查在return时候;现在需要传入某种类型,返回也是该类型;
    // T表示泛型,具体什么类型是调用这个方法的时候决定的
    
    function getData<T>(value: T):T {
       return value;
    }
    getData<number>(123) //<>和()数据类型一致;
    
    //2.泛型类,比如最小堆算法,需要同时支持返回数字和字符串两种类型。通过类的泛型来实现
    class MinClass{
      public list: number[] = [];
      add(num:number){
        this.list.push(num)
      }
      min(){
        var minNum = this.list[0];
        for(var i = 0; i < this.list.lenth;i ++){
           if(minNum > this.list[i]){
             minNum = this.list[i];
           }
        }
        return minNum;
      }
    }
    var m = new MinClass();
    m.add(2);
    m.add(32);
    m.min(); //2
    
    2.类的泛型
    class MinClass<T>{
      public list: T[] = [];
      add(value: T): void{
        this.list.push(value);
      }
      min(): T{
        for(var i = 0; i < this.list.lenth;i ++){
           if(minNum > this.list[i]){
             minNum = this.list[i];
           }
        }
        return minNum;
      }
    }
    var mi = new MinClass<number>(); //实例化类 并且制定了T代表的类型是number;
    mi.add(1);
    mi.add(5);
    mi.min(); //1

    (2)泛型接口

    //1.函数类型接口
    interface Config{
      (value1: string,value2: string): string;
    }
    var setData: ConfigFn = function(value1: string,value2: string): string{
      return value1 + value2;
    }
    setData('name','xiaoming');
    
    //2. 泛型接口
    interface Config{
      <T>(value: T): T;
    }
    var getData: ConfigFn = function<T>(value: T): T{
      return value;
    }
    getData<string>('xiaoming');
    //第二种方法
    var myGetData: ConfigFn<string> = getData;
    myGetData('12'); //必须和泛型接口类型一致;

    发现我跟人的学习方法还是比较笨的那种类型,很浪费时间,但是不敲又不能熟记,虽然敲了也不一定能记住;熟能生巧,哈哈。

  • 相关阅读:
    streamsets 集成 cratedb 测试
    streamsets k8s 部署试用
    streamsets rest api 转换 graphql
    StreamSets sdc rpc 测试
    StreamSets 相关文章
    StreamSets 多线程 Pipelines
    StreamSets SDC RPC Pipelines说明
    StreamSets 管理 SDC Edge上的pipeline
    StreamSets 部署 Pipelines 到 SDC Edge
    StreamSets 设计Edge pipeline
  • 原文地址:https://www.cnblogs.com/naniandongzhi/p/10599995.html
Copyright © 2011-2022 走看看