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)
扬人之长,谅人之过!