TypeScript学习笔记2-函数

函数

函数声明

  1. 普通函数声明

    1
    2
    3
    function func(x:number,y:number):number{
    return x+y;
    }
  2. 表达式函数声明

    1
    2
    3
    const func2 = function (x: number, y: number): number {
    return x + y;
    }
  3. 完整函数声明

    1
    2
    3
    4
    const func3: (x: number, y: number) => number =
    function (num1: number, num2: number): number {
    return num1 + num2;
    };
  4. 箭头函数声明

    1
    2
    3
    const fun4 = (x: number, y: number): number => {
    return x+y;
    }
  5. 完整 箭头函数声明

    1
    2
    3
    const fun5: (x: number, y: number) => number = (x: number, y: number): number => {
    return x + y;
    }

函数可选参数

用法:使用“?”,表示该参数是可选的;
注意点:

  • 可选参数必须在所有参数的末尾
1
2
3
const func6 = function (x: number, y?: number): number {
return x + y;
}

函数参数默认值

用法:跟在类型后面直接 形参:类型= “默认值”

1
2
3
function func(x: number, y: number = 123): number {
return x + y;
}

注意:

  • TypeScript会将添加了默认值的参数识别为可选参数

函数剩余参数

用法:使用…rest方式获取函数中剩余参数
注意:

  • …rest 类型必须是数组
  • …rest 必须是形参的最后一个参数
1
2
3
function push(array: number[], ...item: number[]):number[] {
return array.concat(item);
}

函数重载

用法:当需要根据不同类型的形参返回不一样返回值时,定义同名,不同参数与返回值的函数,可以实现重载,方便代码提示语校验

1
2
3
4
5
6
7
8
9
function reverse(x: number): number;
function reverse(x: string): string;
function reverse(x: number | string): number | string {
if (typeof x === 'number') {
return Number(x.toString().split('').reverse().join(''));
} else if (typeof x === 'string') {
return x.split('').reverse().join('');
}
}