zoukankan      html  css  js  c++  java
  • TypeScript 函数泛型

    function join(first: string | number, second: string | number) {
      return `${first}${second}`;
    }
    join('1', 1);
    
    /**
    * 这么看 join 还挺好用的。
    * 如果我想做到这两个数要么都传 string,要么都传 number
    * 一个 string,一个 number 时希望提醒我
    *
    * 这个时候需要使用泛型这个概念
    * 泛型 generic 泛指的类型
    * join<ABC>,这个 <abc> 指的就是泛型
    */
    
    function join1<ABC>(first: ABC, second: ABC) {
      return `${first}${second}`;
    }
    join1<string>('1', '1');
    // 这个意思就是调用 join1 时我指定 ABC 是 string,那么 first,second 都是 string
    join1<number>(1, 1);
    // 这个意思就是调用 join1 时我指定 ABC 是 number,那么 first,second 都是 number
    
    
    /**
    * 这个就是泛型的概念,有的时候遇到这样的情况
    * ABC 后面加 [] ,变成 ABC[],那么就是一个数组
    * 这个时候直接传字符串是不行的,要传 string 类型的数组
    */
    function map<ABC>(params: ABC[]) {
      return params;
    }
    map<string>(['123']);
    // 或者
    function map1<ABC>(params: Array<ABC>) {
      return params;
    }
    map1<string>(['123']);
    
    
    /**
    * 泛型还可以指定多个
    */
    function join2<T, P>(first: T, second: P) {
      return `${first}${second}`
    }
    join2<string, number>('1', 2)
    
    /**
    * 如果调用的时候不写类型, ts 会去推断
    * 泛型只有在用的时候才知道是什么类型
    */
  • 相关阅读:
    NOIP2014-普及组复赛-第二题-比例简化
    NOIP2014-普及组复赛-第一题-珠心算测验
    洛谷-不高兴的津津(升级版)-数组
    洛谷-陶陶摘苹果(升级版)-数组
    洛谷-小鱼比可爱-数组
    小车问题
    洛谷-小鱼的数字游戏-数组
    洛谷-校门外的树-数组
    centos 6.5 minimal 安装及vm-tools安装
    php使用第三方登录
  • 原文地址:https://www.cnblogs.com/wzndkj/p/13161098.html
Copyright © 2011-2022 走看看