摘要:在本教程中,您将学习如何在函数中使用 TypeScript 可选参数。
在 JavaScript 中,即使函数指定了参数,您也可以在不传递任何参数的情况下调用函数。因此,JavaScript 默认支持可选参数。
在 TypeScript 中,编译器会检查每个函数调用,并在以下情况下发出错误
- 参数的数量与函数中指定的参数数量不同。
- 或者参数的类型与函数参数的类型不兼容。
由于编译器会彻底检查传递的参数,因此您需要注释可选参数以指示编译器在省略参数时不要发出错误。
要使函数参数可选,您可以在参数名称后使用?
。例如
function multiply(a: number, b: number, c?: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
Code language: JavaScript (javascript)
工作原理
- 首先,在
c
参数后使用?
。 - 其次,使用表达式
typeof c !== 'undefined'
检查是否将参数传递给函数。
请注意,如果您使用表达式if(c)
来检查参数是否未初始化,您会发现空字符串或零将被视为undefined
。
可选参数必须出现在参数列表中必需参数之后。
例如,如果您使b
参数可选,而c
参数是必需的,则 TypeScript 编译器将发出错误
function multiply(a: number, b?: number, c: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
Code language: JavaScript (javascript)
错误
error TS1016: A required parameter cannot follow an optional parameter.
总结
- 使用
parameter?: type
语法使参数可选。 - 使用表达式
typeof(parameter) !== 'undefined'
检查参数是否已初始化。
本教程是否有帮助?