可选参数

形参没有传默认是undefined

12、ts函数,可选参数,默认参数,剩余参数_数组


可选参数用的不多,内部还要多层判断,一般都用默认参数实现

function bugGun(gunName:string,count?:number) {
console.log(`有眼光~【${gunName}】是
村里最好的强,送你[${count}]把,咱们P城来相见`)
}
bugGun('Ak')
// 不传的话默认是undefined
//有眼光~【Ak】是
// 村里最好的强,送你[undefined]把,咱们P城来相见
function bugGun1(gunName:string,count?:number) {
console.log(`有眼光~【${gunName}】是
村里最好的强,送你[${count? count: 1}]把,咱们P城来相见`)
}
bugGun1('m24')
// 有眼光~【m24】是
// 村里最好的强,送你[1]把,咱们P城来相见

默认参数

,默认参数本身就是可选参数了,所以默认就不要写可选了

12、ts函数,可选参数,默认参数,剩余参数_可选参数_02

function bugGun2(gunName: string = "awm", count: number = 5) {
console.log(`有眼光~【${gunName}】是
村里最好的强,送你[${count? count: 1}]把,咱们P城来相见`)
}
// 两个参数都不传
bugGun2()
//有眼光~【awm】是
//村里最好的强,送你[5]把,咱们P城来相见

// 前传后不传
bugGun2('ak')
//有眼光~【ak】是
//村里最好的强,送你[5]把,咱们P城来相见

// 前不传后传
bugGun2(undefined,99)
//有眼光~【awm】是
//村里最好的强,送你[5]把,咱们P城来相见

剩余参数

剩余参数的类型必须是数组,具体是指明类型的数组

12、ts函数,可选参数,默认参数,剩余参数_剩余参数_03

function add1 (x: number, y: number, ...restOfNum: number[]): void {
let resNum: number = x + y;
for( let ele of restOfNum ) {
resNum += ele
}
console.log(resNum)
}

add1(1,2) // 3
add1(1,2,6,8,9) // 26