1. function join(a: string | number, b: string | number) {
    2. return `${a}${b}`
    3. }
    4. // 需求 a是string,则b也要传递string
    5. // a是number,则b也要传递number
    6. /*一般使用**********************************/
    7. // 泛型 generic,泛指的类型
    8. function join_2<ABC>(a: ABC, b: ABC) {
    9. return `${a}${b}`
    10. }
    11. join_2<string>('1', '2');
    12. join_2<number>(1, 2);
    13. /*其他用法**********************************/
    14. function join_3<ABC>(params: ABC[]) { // 或者这种写法 params: Array<ABC>
    15. return params;
    16. }
    17. join_3<string>(['123', '234']);
    18. /*多个泛型**********************************/
    19. function join_4<T, P>(a: T, b: P) {
    20. return `${a}${b}`;
    21. }
    22. join_4<number, string>(1, '2');
    23. join_4('1', 1);// 如果不写泛型,则TS会根据参数去推断
    24. /*要求返回值**********************************/
    25. function join_5<T>(a: T): T {
    26. return a;
    27. }