4.函数类型

一.函数的两种声明方式

  • 通过function关键字来进行声明

    function sum(a: string, b: string):string {
        return a+b;
    }
    sum('a','b')
    
    1
    2
    3
    4

    可以用来限制函数的参数和返回值类型

  • 通过表达式方式声明

    type Sum = (a1: string, b1: string) => string;
    let sum: Sum = (a: string, b: string) => {
        return a + b;
    };
    
    1
    2
    3
    4

二.可选参数

let sum = (a: string, b?: string):string => {
    return a + b;
};
sum('a'); // 可选参数必须在其他参数的最后面
1
2
3
4

三.默认参数

let sum = (a: string, b: string = 'b'): string => {
    return a + b;
};
sum('a'); // 默认参数必须在其他参数的最后面
1
2
3
4

四.剩余参数

const sum = (...args: string[]): string => {
    return args.reduce((memo, current) => memo += current, '')
}
sum('a', 'b', 'c', 'd')
1
2
3
4

五.函数的重载

function toArray(value: number): number[]
function toArray(value: string): string[]
function toArray(value: number | string) {
    if (typeof value == 'string') {
        return value.split('');
    } else {
        return value.toString().split('').map(item => Number(item));
    }
}
toArray(123); // 根据传入不同类型的数据 返回不同的结果
toArray('123');
1
2
3
4
5
6
7
8
9
10
11