提出问题
定义登记学生信息的函数,如下:
function dengji(name:string,phone:string,zuoji:string):void{
console.log("姓名:",name)
console.log("手机:",phone)
console.log("座机:",zuoji)
}
但是,大部分家庭已经 没有座机,登记时,可以赋值 undefined 或 null:
dengji("李雷","13812345678",undefined)
dengji("张三","13612345678",undefined)
dengji("李四","13911122233",undefined)
此时座机号码是 可选参数,可以不必传值
解决
定义 函数 时,可以指定形参为 可选参数
可选形参
可选参数,就是在调用函数时,可以 不传值 的参数。
不传值时,可选参数的值是 undefined
语法
在形参名的后面加上 ?
注意:可选参数必须放在必选参数之后
function 函数名(必选参数: 类型, 可选参数?: 类型): 返回值类型 {
}
调用
调用时,可以不传值
例子
改写开头的函数,将形参 zuoji 定义为可选参数:
function dengji(name:string,phone:string,zuoji?:string):void{
console.log("姓名:",name)
console.log("手机:",phone)
console.log("座机:",zuoji)
}
调用时,如果 没有座机号码,可选参数 zuoji 可以不传值,如下:
dengji("李雷","13812345678")
dengji("李四","13911122233")
调用时,如果 有座机号码,就正常传值,如下:
dengji("张三","13612345678","33344455")