TypeScript:函数可选形参(使用问号?)

提出问题

定义登记学生信息的函数,如下:

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")

原文出处:/show_1GW2QbV0NcQa.html