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

    软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
    约束数据类型

    interface Person {
      name: string
      age: number
    }
    
    interface Animal {
      name: string
      type: string
    }
    
    function aa(arg:Person): Person{
      console.log(arg)
      const s = {
        name:arg.name,
        age:arg.age
      }
      return s;
    }
    
    
    
    /*
    * 尖括号里面的是添加了P,A类型变量,arg1参数使用P类型,arg2使用A类型,返回值使用P类型.
    * */
    function identity<P,A>(arg1: P,arg2:A):P {
      return arg1
    }
    /*
    * 1.因为参数和返回值被约束了,所以不可以随意的传参,一定要按照约束的类型来传参
    * 2.调用的时候,给identity添加了上面已经定义了的Person和Animal两个变量类型,
    *   arg1传入的类型跟Person的数据类型保持一致,arg1传入的类型跟Animal的数据类型保持一致,
    *   得到的返回值是{name:'aaa',age:0},正好是Person的类型;
    * */
    identity<Person,Animal>({name:'aaa',age:0},{name:'aaa',type:'cat'});
     
  • 相关阅读:
    Quartz.net 定时任务在IIS中未按时执行
    扩展方法
    mysql 实用语句
    jquery each map
    js匿名函数多时注意
    ASP.NET MVC3调用分部视图
    eclipse快捷键
    regular 点滴
    适配器模式
    php代码实现简单图片下载
  • 原文地址:https://www.cnblogs.com/darkbluelove/p/11338472.html
Copyright © 2011-2022 走看看