TS学习之路003-函数
cirzear / / 学习之路 / 阅读量 367

声明方式

1. 通过function
2. 通过变量
3. 通过接口
4. 通过类型别名

可选参数: 通过 ? 来声明。

function add5(x: number, y?: number) {
    return y? x + y : x;
}

剩余参数

function add6(x: number, ... rest: number[]) {
    return x + rest.reduce((pre, cur) => pre + cur)
}

参数默认值:

function add7(x: number, y = 0, z: number, q =1) {
    return x + y + z + q;
}
add6(1, undefined, 3) //输出5 

x 传值是2,y传值是undefined因为是undefined所以取默认值0,z传值是3,q因为没有传值所以取默认值1。 如果改成console.log(add6(2, 3));此时是不允许的,z需要传值。 总结就是如果函数参数设置了默认值则可以不传或者传undefined都是取默认值,否则需要传值。

注意: 必选参数前面的默认参数是不可省略的,需传入 undefined 来获取它的默认值; 必选参数后面的默认参数是可以省略的。

函数重载

// ts中的函数重载  函数执行时会去查找适合的类型,不合适会继续向下查找如下所示:
function add8(...rest:number[]): number;
function add8(...rest:string[]): string;
function add8(...rest:any[]): any{
    let first = rest[0];
    if(typeof first === 'string'){
        return rest.join('')
    }
    if(typeof first === 'number'){
        return rest.reduce((pre,cur)=> pre + cur)
    }
}

console.log(add8(1,2,3)) //输出6
console.log(add8('a','b','c')) //输出abc
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章