1. ts函数定义
// es5函数声明
function
run3(){
return 'run'
}
// es5匿名函数
var run4
= function(){
return 'run'
}
// ts函数声明
function
run5():string{
return 'run'
}
// ts匿名函数
var run6
= function():number{
return 123
}
// ts中定义方法传参
function
getInfo(name:string,age:number):string{
return 'info'+`$(name)---$(age)`
}
var
getInfo1 = function(name:string,age:number):string{
return 'info'+`$(name)---$(age)`
}
// 没有返回值的方法
function
getInfo2():void{
console.log(123)
}
2.方法可选参数,在参数后面加?变为可选参数,可选参数必须配置到参数的最后面
function
getInfo3(name:string,age?:number):string{
if(age){
return 'info'+`$(name)---$(age)`
}else{
return 'info'+`$(name)---年龄保密`
}
}
3.默认参数 es6和ts都可以设置默认参数
function getInfo4(name:string,age:number=20):string{
if(age){
return 'info'+`$(name)---$(age)`
}else{
return 'info'+`$(name)---年龄保密`
}
}
getInfo4('张三',30)
4.剩余参数
function sum(a:number,b:number,c:number):number{
return
a+b+c
}
sum(1,2,3)
// 三点运算符接收传过来的值
function
sum1(...result:number[]):number{
var sum
= 0
for(var
i=0;i<result.length;i++){
sum
+= result[i]
}
return
sum
}
sum1(1,2,3)
function
sum2(a:number,...result:number[]):number{
var sum
= 0
for(var
i=0;i<result.length;i++){
sum
+= result[i]
}
return a
+ sum
}
sum1(1,2,3)
5.函数重载
// java重载是指两个或两个以上同名函数,但是函数参数不同,这时候会出现函数重载的情况
// ts重载是指通过一个函数提供多个函数定义来试下多种功能的目的
function
getInfo5(name:string):string
function
getInfo5(age:number):number
function
getInfo5(str:any):any{
if(typeof str == 'string'){
return str
}else{
return str
}
}
alert(getInfo5(123))
// 方法重载可以和函数选择传参一起用
6.箭头函数
setTimeout(function(){
alert('run')
},1000)
setTimeout(()=>{
alert('run')
},1000)