函数(或匿名函数)返回值类型校验
function run():string{
return 'sifuchun'
}
没有返回值类型校验
function run():void{
console.log(....)
}
函数参数类型校验
function person(name:string,age:number):string{
return `${name}---${age}`
}
alert(person('zhangsan',20))
可选参数
可选参数
必须配置到参数的最后
function person(name:string,age?:number):string{
return `${name}---${age}`
}
alert(person('zhangsan',20))
默认参数
es5中没法设置默认参数,es6和ts中可以设置默认参数,没有传参打印默认参数,传参以传参为主。
function person(name:string,age:number=20):string{
return `${name}---${age}`
}
alert(person('zhangsan'))
剩余参数
// 写法1:
// 三点运算符,接收新参传过来的值
function sum(...result:number[]):number{
for(let i = 0;i<result.length;i++){
let sum = 0;
sum + = result[i]
}
return sum
}
alert(sum(1,2,3,4))
// 写法2:
function sum(a:number,...result:number[]):number{
let sum = a;
for(let i = 0;i<result.length;i++){
sum + = result[i]
}
return sum
}
alert(sum(1,2,3,4))
函数重载
es5中定义同名函数,形参不同也会被覆盖,称为函数重载
es6和ts中支持函数重载:ts中的重载,参数必须在参数重载的参数中找到,不然会报错
function getInfo(name:string):string;
function getInfo(age:number):string;
function getInfo(str:any):any{
if(typeof === 'string'){
return '姓名'+str;
}else{
return '年龄'+str
}
}
alert(getInfo('zhangsan'))
箭头函数,es6
箭头函数this指向上下文
setTimeout(()=>{
alert('run')
},1000)