typescript的函数

1:默认参数(传入值会覆盖默认参数,不传值也行)

function getinfo(name:string,age:number=20):string{
    return `${name}---${age}`
}
console.log(getinfo("张三"));//打印出:张三 20
console.log(getinfo("张三",30));//打印出:张三 30

2:可选参数(可以传可选的值也可以不用传,但是可选的参数必须放在参数列表的最后

function getinfo1(name:string,age?:number):string{
    if(age){
        return `${name}---${age}`  
    }else{
        return `${name}---年龄保密`
    }
    
}
console.log(getinfo1("张三"));//打印出:张三 年龄保密
console.log(getinfo1("张三",30));//打印出:张三 30

3:剩余参数

先看一个基本的应用

function sum(a:number,b:number,c:number,d:number):number{
    return  a+b+c+d;
}
console.log(sum(1,2,3,4));//10

上面的代码就可以改写成剩余参数的形式,利用es6的三点运算符(相当于把参数赋值给一个数组,然后用循环遍历这个数组

function sum1(...result:number[]):number{
    var sum=0;
    for(let i=0;i<result.length;i++){
        sum+=result[i];
    }
    return sum;
}
console.log(sum1(1,2,3,4,5));//15
console.log(sum1(1,2,3,4,5,6));//21

或者(这样的话就是把你传进来的第一个参数赋值给a,后面的放进数组

function sum1(a:number,...result:number[]):number{
    var sum=a;
    for(let i=0;i<result.length;i++){
        sum+=result[i];
    }
    return sum;
}
console.log(sum1(1,2,3,4,5));//15
console.log(sum1(1,2,3,4,5,6));//21

4.箭头函数

//es5正常写法
setTimeout(function(){
    alert("run");
},3000)
//es6箭头函数的写法
setTimeout(()=>{
    alert("run");
},3000)

 

posted @ 2019-03-20 18:09  Ai-Long  阅读(561)  评论(0编辑  收藏  举报