TypeScript中的函数

定义函数的四种方式:

// 1.用function来定义函数(返回值的number可以省略,这是由于ts的类型推断)
function add1(x:number,y:number):number{
    return x+y;
}


//2.通过变量来定义函数类型
let add2:(x:number,y:number)=>number;


//3.通过类型别名来定义函数类型
type add3=(x:number,y:number)=>number;


//4.接口定义函数类型
interface add4{
    (x:number,y:number):number;
}


注意:这里的后三种只是定义了函数的类型,并没有具体实现。

函数参数相关:

1.函数参数必须一 一对应

  • 比如,我们调用上面的函数add1(2)  ,会报错并提示我们:应有 2 个参数,但获得 1 个。

2.可选参数必须位于必选参数之后

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

3.函数参数默认值相关概念

  • 在调用时,在必选参数前,默认参数是不可以省略的,必须手动设置一个undefined
function add6(x:number,y=0,z:number,q=1){
    return x+y+z+q;
}
add6(1,undefined,3)

函数重载

这个概念是在一些强类型语言中才有的,在JS中依据不同参数类型或参数个数执行一些不同函数体的实现很常见,依托于TypeScript,就会有需要用到这种声明的地方。

TypeScript 中的函数重载也只是多个函数的声明,具体的逻辑还需要自己去写,他并不会真的将你的多个重名 function 的函数体进行合并

你可以简单的理解为:函数名字相同,但是参数个数,参数类型不同

//上边是声明
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,next)=>pre+next)
    }
}
console.log(add8(1,2,3));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值