TypeScript:函数可选形参(使用问号?) 作者:马育民 • 2025-12-18 10:53 • 阅读:10003 # 提出问题 定义登记学生信息的函数,如下: ``` 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") ``` 原文出处:http://www.malaoshi.top/show_1GW2QbV0NcQa.html