函数类型限制包含:参数类型限制、返回值类型限制
参数类型限制:
参数已知时:
//参数固定
function func(param1:number,param2:number){
console.log(param1+param2)
}
func(1,2)
参数未知时:
/**
*
* @param param1 确定参数
* @param param2 确定参数
* @param restf 不确定参数,用剩余参数定义
*/
function func(param1:number,param2:number,...restf:number[]){
let sum = restf.reduce((prev,cont)=>{
return prev + cont
},0)
console.log( param1+param2+sum)
}
func(1,2,3,4)
//都不确定
function addstr(...params:string[]){
params.join('')
}
addstr("aaaa","bbbbb","ccccc")
返回值类型限制:
/**
*
* @param param1 确定参数
* @param param2 确定参数
* @param restf 不确定参数,用剩余参数定义
* 函数返回字符串类型
*/
function func(param1:string,param2:string,...restf:string[]):string{
return param1+param2+restf.join('')
}
func("aa","bb","")
/**----------------------------------- */
//函数返回数字类型
function addstr(...params:number[]):number{
let sum = params.reduce((prev,cont)=>{
return prev+cont
},0)
return sum
}
addstr(1,2,3,4)
/**-------------------------------------- */
//函数返回空,为undefined
function ret():void{
//写其它逻辑
return undefined
}
/*******------------------------***** */
//参数可以用联合类型
function sm(x:number|string|boolean,y:string){
console.log(x)
}