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 会去推断
    * 泛型只有在用的时候才知道是什么类型
    */
  • 相关阅读:
    《大话设计模式》读书笔记
    设计模式个人笔记
    多线程的单元测试工具
    设计模式六大原则
    时间复杂度和空间复杂度(转)
    排序算法笔记
    《人月神话》读书笔记
    微信公众号开发踩坑记录(二)
    微信公众号开发踩坑记录
    全栈工程师之路
  • 原文地址:https://www.cnblogs.com/wzndkj/p/13161098.html
Copyright © 2011-2022 走看看