函数定义
和ES5一样,可以用函数声明法和匿名函数法
- 函数声明法
function add(a:number,b:number):number{
return a+b
}
- 匿名函数法
var add2 = function(a:number,b:number):number{
return a+b
}
可选参数
- 在ES5中,函数的实参和形参可不一样,但是ts中必须一样,若不一样,需要配置可选参数
- 可选参数必须配置到参数的最后面
var getInfo = function(name:string,age?:number):string{
if(age){
return `${name}--${age}`
}else{
return `${name}--年龄保密`
}
}
console.log(getInfo('xiaoming')) //xiaoming--年龄保密
默认参数
ES5里不能设置默认参数,ES6和ts里都可以设置
var getInfo = function(name:string,age:number=20):string{
if(age){
return `${name}--${age}`
}else{
return `${name}--年龄保密`
}
}
console.log(getInfo('xiaoming')) //xiaoming--20
console.log(getInfo('miemie',18)) // miemie--18
剩余参数
sum1和sum2都是将参数相加求和的函数
函数sum1必须传四个参数;
函数sum2使用三点运算符接受参数传过来的值,可以传任意个参数
function sum1(a:number,b:number,c:number,d:number):number{
return a+b+c+d
}
console.log(sum1(1,2,3,4))
function sum2(...arr:number[]):number{
let res = 0
arr.forEach((v)=>{
res+=v
})
return res
}
console.log(sum2(1,2,-8))
函数重载 ?
箭头函数
- 和ES6一致
- 箭头函数里的this指向上下文
setTimeout(()=>{
console.log("time...")
},1000)