TypeScript 可选参数
摘要:在本教程中,你将学习如何使用函数的 TypeScript 可选参数。
在 JavaScript 中,即使函数指定了参数,也可以在不传递任何参数的情况下调用函数。 因此,JavaScript 默认支持可选参数。
在 TypeScript 中,编译器会检查每个函数调用,并在以下情况下发出错误:
- 参数数量与函数中指定的参数数量不同。
- 或者参数的类型与函数参数的类型不兼容。
由于编译器会彻底检查传递的参数,因此你需要对可选参数进行注释,以指示编译器在省略参数时不要发出错误。
要使函数参数成为可选参数,可以在参数名称后使用 ?
。 例如:
function multiply(a: number, b: number, c?: number): number {
if (typeof c !== 'undefined') {
return a * b * c;
}
return a * b;
}
怎么运行的:
- 首先,在参数
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;
}
报错:
error TS1016: A required parameter cannot follow an optional parameter.
概括
- 使用
parameter?:
语法使参数可选。 - 使用表达式
typeof(parameter) !== 'undefined'
检查参数是否已初始化。